Browse Source

perf: 删除不必要的页面

曾坤森 3 months ago
parent
commit
5148804720
29 changed files with 18 additions and 1592 deletions
  1. 0 1
      .vscode/settings.json
  2. 0 4
      src/locale/en-US.ts
  3. 0 5
      src/locale/zh-CN.ts
  4. 0 2
      src/mock/index.ts
  5. 10 10
      src/router/routes/modules/dashboard.ts
  6. 0 94
      src/views/dashboard/monitor/components/chat-item.vue
  7. 0 76
      src/views/dashboard/monitor/components/chat-list.vue
  8. 0 79
      src/views/dashboard/monitor/components/chat-panel.vue
  9. 0 133
      src/views/dashboard/monitor/components/data-statistic-list.vue
  10. 0 56
      src/views/dashboard/monitor/components/data-statistic.vue
  11. 0 32
      src/views/dashboard/monitor/components/quick-operation.vue
  12. 0 34
      src/views/dashboard/monitor/components/studio-information.vue
  13. 0 84
      src/views/dashboard/monitor/components/studio-status.vue
  14. 0 51
      src/views/dashboard/monitor/components/studio.vue
  15. 0 88
      src/views/dashboard/monitor/index.vue
  16. 0 48
      src/views/dashboard/monitor/locale/en-US.ts
  17. 0 48
      src/views/dashboard/monitor/locale/zh-CN.ts
  18. 0 26
      src/views/dashboard/monitor/mock.ts
  19. 0 72
      src/views/dashboard/workplace/components/announcement.vue
  20. 0 35
      src/views/dashboard/workplace/components/banner.vue
  21. 0 24
      src/views/dashboard/workplace/components/carousel.vue
  22. 0 136
      src/views/dashboard/workplace/components/data-panel.vue
  23. 0 42
      src/views/dashboard/workplace/components/docs.vue
  24. 0 122
      src/views/dashboard/workplace/components/popular-content.vue
  25. 0 35
      src/views/dashboard/workplace/components/quick-operation.vue
  26. 0 44
      src/views/dashboard/workplace/components/recently-visited.vue
  27. 8 144
      src/views/dashboard/workplace/index.vue
  28. 0 34
      src/views/dashboard/workplace/locale/en-US.ts
  29. 0 33
      src/views/dashboard/workplace/locale/zh-CN.ts

+ 0 - 1
.vscode/settings.json

@@ -3,7 +3,6 @@
     "src/locale",
     "src/components/message-box/locale",
     "src/views/login/locale",
-    "src/views/dashboard/monitor/locale",
     "src/views/dashboard/workplace/locale",
     "src/views/exception/403/locale",
     "src/views/exception/404/locale",

+ 0 - 4
src/locale/en-US.ts

@@ -3,8 +3,6 @@ import localeLogin from '@/views/login/locale/en-US';
 
 import localeWorkplace from '@/views/dashboard/workplace/locale/en-US';
 
-import localeMonitor from '@/views/dashboard/monitor/locale/en-US';
-
 import localeSearchTable from '@/views/list/search-table/locale/en-US';
 import localeCardList from '@/views/list/card/locale/en-US';
 
@@ -21,7 +19,6 @@ export default {
   'menu.dashboard': 'Dashboard',
   'menu.server.dashboard': 'Dashboard-Server',
   'menu.server.workplace': 'Workplace-Server',
-  'menu.server.monitor': 'Monitor-Server',
   'menu.list': 'List',
   'menu.exception': 'Exception',
   'menu.user': 'User Center',
@@ -32,7 +29,6 @@ export default {
   ...localeMessageBox,
   ...localeLogin,
   ...localeWorkplace,
-  ...localeMonitor,
   ...localeSearchTable,
   ...localeCardList,
   ...locale403,

+ 0 - 5
src/locale/zh-CN.ts

@@ -3,8 +3,6 @@ import localeLogin from '@/views/login/locale/zh-CN';
 
 import localeWorkplace from '@/views/dashboard/workplace/locale/zh-CN';
 
-import localeMonitor from '@/views/dashboard/monitor/locale/zh-CN';
-
 import localeSearchTable from '@/views/list/search-table/locale/zh-CN';
 import localeCardList from '@/views/list/card/locale/zh-CN';
 
@@ -20,7 +18,6 @@ export default {
   'menu.dashboard': '仪表盘',
   'menu.server.dashboard': '仪表盘-服务端',
   'menu.server.workplace': '工作台-服务端',
-  'menu.server.monitor': '实时监控-服务端',
   'menu.list': '列表页',
   'menu.exception': '异常页',
   'menu.user': '个人中心',
@@ -31,8 +28,6 @@ export default {
   ...localeMessageBox,
   ...localeLogin,
   ...localeWorkplace,
-
-  ...localeMonitor,
   ...localeSearchTable,
   ...localeCardList,
   ...locale403,

+ 0 - 2
src/mock/index.ts

@@ -5,8 +5,6 @@ import './message-box';
 
 import '@/views/dashboard/workplace/mock';
 
-import '@/views/dashboard/monitor/mock';
-
 import '@/views/list/card/mock';
 import '@/views/list/search-table/mock';
 

+ 10 - 10
src/router/routes/modules/dashboard.ts

@@ -23,16 +23,16 @@ const DASHBOARD: AppRouteRecordRaw = {
       },
     },
 
-    {
-      path: 'monitor',
-      name: 'Monitor',
-      component: () => import('@/views/dashboard/monitor/index.vue'),
-      meta: {
-        locale: 'menu.dashboard.monitor',
-        requiresAuth: true,
-        roles: ['admin'],
-      },
-    },
+    // {
+    //   path: 'monitor',
+    //   name: 'Monitor',
+    //   component: () => import('@/views/dashboard/monitor/index.vue'),
+    //   meta: {
+    //     locale: 'menu.dashboard.monitor',
+    //     requiresAuth: true,
+    //     roles: ['admin'],
+    //   },
+    // },
   ],
 };
 

+ 0 - 94
src/views/dashboard/monitor/components/chat-item.vue

@@ -1,94 +0,0 @@
-<template>
-  <div :class="['chat-item', itemData.isCollect ? 'chat-item-collected' : '']">
-    <a-space :size="4" direction="vertical" fill>
-      <a-typography-text type="warning">
-        {{ itemData.username }}
-      </a-typography-text>
-      <a-typography-text>{{ itemData.content }}</a-typography-text>
-      <div class="chat-item-footer">
-        <div class="chat-item-time">
-          <a-typography-text type="secondary">
-            {{ itemData.time }}
-          </a-typography-text>
-        </div>
-        <div class="chat-item-actions">
-          <div class="chat-item-actions-item">
-            <icon-command />
-          </div>
-          <div class="chat-item-actions-item chat-item-actions-collect">
-            <icon-star />
-          </div>
-        </div>
-      </div>
-    </a-space>
-  </div>
-</template>
-
-<script lang="ts" setup>
-  import { PropType } from 'vue';
-  import { ChatRecord } from '@/api/message';
-
-  defineProps({
-    itemData: {
-      type: Object as PropType<ChatRecord>,
-      default() {
-        return {};
-      },
-    },
-  });
-</script>
-
-<style scoped lang="less">
-  .chat-item {
-    padding: 8px;
-    font-size: 12px;
-    line-height: 20px;
-    border-radius: 2px;
-
-    &-footer {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-    }
-
-    &-actions {
-      display: flex;
-      opacity: 0;
-
-      &-item {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 20px;
-        height: 20px;
-        margin-right: 4px;
-        color: var(--color-text-3);
-        font-size: 14px;
-        border-radius: 50%;
-        cursor: pointer;
-
-        &:hover {
-          background-color: rgb(var(--gray-3));
-        }
-
-        &:last-child {
-          margin-right: 0;
-        }
-      }
-    }
-
-    &-collected {
-      .chat-item-actions-collect {
-        color: rgb(var(--gold-6));
-      }
-    }
-
-    &:hover {
-      background-color: rgb(var(--gray-2));
-
-      .chat-item-actions {
-        opacity: 1;
-      }
-    }
-  }
-</style>

+ 0 - 76
src/views/dashboard/monitor/components/chat-list.vue

@@ -1,76 +0,0 @@
-<template>
-  <div class="chat-list">
-    <ChatItem v-for="item in renderList" :key="item.id" :item-data="item" />
-    <a-result v-if="!renderList.length" status="404" />
-  </div>
-</template>
-
-<script lang="ts" setup>
-  import { PropType } from 'vue';
-  import { ChatRecord } from '@/api/message';
-  import ChatItem from './chat-item.vue';
-
-  defineProps({
-    renderList: {
-      type: Array as PropType<ChatRecord[]>,
-      default() {
-        return [];
-      },
-    },
-  });
-</script>
-
-<style scoped lang="less">
-  .chat-item {
-    padding: 8px;
-    font-size: 12px;
-    line-height: 20px;
-    border-radius: 2px;
-
-    &-footer {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-    }
-
-    &-actions {
-      display: flex;
-      opacity: 0;
-
-      &-item {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 20px;
-        height: 20px;
-        margin-right: 4px;
-        color: var(--color-text-3);
-        font-size: 14px;
-        border-radius: 50%;
-        cursor: pointer;
-
-        &:hover {
-          background-color: rgb(var(--gray-3));
-        }
-
-        &:last-child {
-          margin-right: 0;
-        }
-      }
-    }
-
-    &-collected {
-      .message-item-actions-collect {
-        color: rgb(var(--gold-6));
-      }
-    }
-
-    &:hover {
-      background-color: rgb(var(--gray-2));
-
-      .message-item-actions {
-        opacity: 1;
-      }
-    }
-  }
-</style>

+ 0 - 79
src/views/dashboard/monitor/components/chat-panel.vue

@@ -1,79 +0,0 @@
-<template>
-  <a-card
-    class="general-card chat-panel"
-    :title="$t('monitor.title.chatPanel')"
-    :bordered="false"
-    :header-style="{ paddingBottom: '0' }"
-    :body-style="{
-      height: '100%',
-      paddingTop: '16px',
-      display: 'flex',
-      flexFlow: 'column',
-    }"
-  >
-    <a-space :size="8">
-      <a-select style="width: 86px" default-value="all">
-        <a-option value="all">
-          {{ $t('monitor.chat.options.all') }}
-        </a-option>
-      </a-select>
-      <a-input-search
-        :placeholder="$t('monitor.chat.placeholder.searchCategory')"
-      />
-      <a-button type="text">
-        <icon-download />
-      </a-button>
-    </a-space>
-    <div class="chat-panel-content">
-      <a-spin :loading="loading" style="width: 100%">
-        <ChatList :render-list="chatData" />
-      </a-spin>
-    </div>
-    <div class="chat-panel-footer">
-      <a-space :size="8">
-        <a-Input>
-          <template #suffix>
-            <icon-face-smile-fill />
-          </template>
-        </a-Input>
-        <a-button type="primary">{{ $t('monitor.chat.update') }}</a-button>
-      </a-space>
-    </div>
-  </a-card>
-</template>
-
-<script lang="ts" setup>
-  import { ref } from 'vue';
-  import { queryChatList, ChatRecord } from '@/api/message';
-  import useLoading from '@/hooks/loading';
-  import ChatList from './chat-list.vue';
-
-  const { loading, setLoading } = useLoading(true);
-  const chatData = ref<ChatRecord[]>([]);
-  const fetchData = async () => {
-    try {
-      const { data } = await queryChatList();
-      chatData.value = data;
-    } catch (err) {
-      // you can report use errorHandler or other
-    } finally {
-      setLoading(false);
-    }
-  };
-  fetchData();
-</script>
-
-<style scoped lang="less">
-  .chat-panel {
-    display: flex;
-    flex-direction: column;
-    height: 100%;
-    // padding: 20px;
-    background-color: var(--color-bg-2);
-
-    &-content {
-      flex: 1;
-      margin: 20px 0;
-    }
-  }
-</style>

+ 0 - 133
src/views/dashboard/monitor/components/data-statistic-list.vue

@@ -1,133 +0,0 @@
-<template>
-  <div>
-    <a-table
-      :columns="columns"
-      :data="data"
-      row-key="id"
-      :row-selection="{
-        type: 'checkbox',
-        showCheckedAll: true,
-      }"
-      :border="false"
-      :pagination="false"
-    />
-    <a-typography-text type="secondary" class="data-statistic-list-tip">
-      {{ $t('monitor.list.tip.rotations') }} {{ data.length }}
-      {{ $t('monitor.list.tip.rest') }}
-    </a-typography-text>
-  </div>
-</template>
-
-<script lang="ts" setup>
-  import { computed, h, compile } from 'vue';
-  import { useI18n } from 'vue-i18n';
-  import type {
-    TableColumnData,
-    TableData,
-  } from '@arco-design/web-vue/es/table/interface.d';
-
-  interface PreviewRecord {
-    cover: string;
-    name: string;
-    duration: string;
-    id: string;
-    status: number;
-  }
-  const { t } = useI18n();
-  const data: PreviewRecord[] = [
-    {
-      cover:
-        'http://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/c788fc704d32cf3b1136c7d45afc2669.png~tplv-uwbnlip3yd-webp.webp',
-      name: '视频直播',
-      duration: '00:05:19',
-      id: '54e23ade',
-      status: -1,
-    },
-  ];
-  const renderTag = (status: number) => {
-    if (status === -1) {
-      return `<a-tag  color="red" class='data-statistic-list-cover-tag'>
-            ${t('monitor.list.tag.auditFailed')}
-        </a-tag>`;
-    }
-    return '';
-  };
-  // Using the Render function is more flexible than using templates.
-  // But, cannot bind context and local scopes are also lost
-
-  const columns = computed(() => {
-    return [
-      {
-        title: t('monitor.list.title.order'),
-        render({
-          rowIndex,
-        }: {
-          record: TableData;
-          column: TableColumnData;
-          rowIndex: number;
-        }) {
-          const tmp = `<span>${rowIndex + 1}</span>`;
-          return h(compile(tmp));
-        },
-      },
-      {
-        title: t('monitor.list.title.cover'),
-        render({
-          record,
-        }: {
-          record: TableData;
-          column: TableColumnData;
-          rowIndex: number;
-        }) {
-          const tmp = `<div class='data-statistic-list-cover-wrapper'>
-              <img src=${record.cover} />
-              ${renderTag(record.status)}
-            </div>`;
-          return h(compile(tmp));
-        },
-      },
-      {
-        title: t('monitor.list.title.name'),
-        dataIndex: 'name',
-      },
-      {
-        dataIndex: 'duration',
-        title: t('monitor.list.title.duration'),
-      },
-      {
-        dataIndex: 'id',
-        title: t('monitor.list.title.id'),
-      },
-    ];
-  });
-</script>
-
-<style lang="less">
-  // Warning: Here is the global style
-  .data-statistic {
-    &-list {
-      &-cover {
-        &-wrapper {
-          position: relative;
-          height: 68px;
-
-          img {
-            height: 100%;
-          }
-        }
-
-        &-tag {
-          position: absolute;
-          top: 6px;
-          left: 6px;
-        }
-      }
-
-      &-tip {
-        display: block;
-        margin-top: 16px;
-        text-align: center;
-      }
-    }
-  }
-</style>

+ 0 - 56
src/views/dashboard/monitor/components/data-statistic.vue

@@ -1,56 +0,0 @@
-<template>
-  <a-card :bordered="false" :body-style="{ padding: '20px' }">
-    <a-tabs default-active-tab="liveMethod">
-      <a-tab-pane
-        key="liveMethod"
-        :title="$t('monitor.tab.title.liveMethod')"
-      />
-      <a-tab-pane
-        key="onlinePopulation"
-        :title="$t('monitor.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-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>
-        </div>
-        <div class="data-statistic-list-content">
-          <DataStatisticList />
-        </div>
-      </div>
-    </div>
-  </a-card>
-</template>
-
-<script lang="ts" setup>
-  import DataStatisticList from './data-statistic-list.vue';
-</script>
-
-<style scoped lang="less">
-  .data-statistic {
-    &-content {
-      padding: 20px 0;
-    }
-
-    &-list {
-      &-header {
-        display: flex;
-        justify-content: space-between;
-        margin-top: 16px;
-      }
-
-      &-content {
-        margin-top: 16px;
-      }
-    }
-  }
-</style>

+ 0 - 32
src/views/dashboard/monitor/components/quick-operation.vue

@@ -1,32 +0,0 @@
-<template>
-  <a-card class="general-card" :title="$t('monitor.title.quickOperation')">
-    <a-space direction="vertical" fill :size="10">
-      <a-button long>
-        {{ $t('monitor.quickOperation.changeClarity') }}
-        <template #icon>
-          <IconTags />
-        </template>
-      </a-button>
-      <a-button long>
-        {{ $t('monitor.quickOperation.switchStream') }}
-        <template #icon>
-          <IconSwap />
-        </template>
-      </a-button>
-      <a-button long>
-        {{ $t('monitor.quickOperation.removeClarity') }}
-        <template #icon>
-          <IconStop />
-        </template>
-      </a-button>
-      <a-button long>
-        {{ $t('monitor.quickOperation.pushFlowGasket') }}
-        <template #icon>
-          <IconArrowRight />
-        </template>
-      </a-button>
-    </a-space>
-  </a-card>
-</template>
-
-<script lang="ts" setup></script>

+ 0 - 34
src/views/dashboard/monitor/components/studio-information.vue

@@ -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="`admin${$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>

+ 0 - 84
src/views/dashboard/monitor/components/studio-status.vue

@@ -1,84 +0,0 @@
-<template>
-  <a-card
-    class="general-card"
-    :title="$t('monitor.studioStatus.title.studioStatus')"
-  >
-    <template #extra>
-      <a-tag color="green">{{ $t('monitor.studioStatus.smooth') }}</a-tag>
-    </template>
-    <a-descriptions layout="horizontal" :data="dataStatus" :column="2">
-      <template #label="{ label }">
-        <span
-          v-if="['mainstream', 'hotStandby', 'coldStandby'].includes(label)"
-        >
-          <a-typography-text style="padding-right: 8px">
-            {{ $t(`monitor.studioStatus.${label}`) }}
-          </a-typography-text>
-          {{ $t('monitor.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') }}
-    </a-typography-title>
-    <a-descriptions layout="horizontal" :data="dataPicture" :column="2" />
-  </a-card>
-</template>
-
-<script lang="ts" setup>
-  import { computed } from 'vue';
-  import { useI18n } from 'vue-i18n';
-
-  const { t } = useI18n();
-  const dataStatus = computed(() => [
-    {
-      label: 'mainstream',
-      value: '6 Mbps',
-    },
-    {
-      label: t('monitor.studioStatus.frameRate'),
-      value: '60',
-    },
-    {
-      label: 'hotStandby',
-      value: '6 Mbps',
-    },
-    {
-      label: t('monitor.studioStatus.frameRate'),
-      value: '60',
-    },
-    {
-      label: 'coldStandby',
-      value: '6 Mbps',
-    },
-    {
-      label: t('monitor.studioStatus.frameRate'),
-      value: '60',
-    },
-  ]);
-  const dataPicture = computed(() => [
-    {
-      label: t('monitor.studioStatus.line'),
-      value: '热备',
-    },
-    {
-      label: 'CDN',
-      value: 'KS',
-    },
-    {
-      label: t('monitor.studioStatus.play'),
-      value: 'FLV',
-    },
-    {
-      label: t('monitor.studioStatus.pictureQuality'),
-      value: '原画',
-    },
-  ]);
-</script>
-
-<style scoped lang="less">
-  :deep(.arco-descriptions-item-label) {
-    padding-right: 6px;
-  }
-</style>

+ 0 - 51
src/views/dashboard/monitor/components/studio.vue

@@ -1,51 +0,0 @@
-<template>
-  <a-card class="general-card" :title="$t('monitor.title.studioPreview')">
-    <template #extra>
-      <icon-more />
-    </template>
-    <div class="studio-wrapper">
-      <img
-        src="http://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/c788fc704d32cf3b1136c7d45afc2669.png~tplv-uwbnlip3yd-webp.webp"
-        class="studio-preview"
-      />
-      <div class="studio-bar">
-        <div v-if="userInfo">
-          <a-space :size="12">
-            <a-avatar :size="24">
-              <img :src="userInfo.avatar" />
-            </a-avatar>
-            <a-typography-text>
-              {{ userInfo.name }} {{ $t('monitor.studioPreview.studio') }}
-            </a-typography-text>
-          </a-space>
-        </div>
-        <a-typography-text type="secondary">
-          36,000 {{ $t('monitor.studioPreview.watching') }}
-        </a-typography-text>
-      </div>
-    </div>
-  </a-card>
-</template>
-
-<script lang="ts" setup>
-  import { useUserStore } from '@/store';
-
-  const userInfo = useUserStore();
-</script>
-
-<style scoped lang="less">
-  .studio {
-    &-preview {
-      display: block;
-      width: 100%;
-      max-width: 600px;
-      margin: 0 auto;
-    }
-
-    &-bar {
-      display: flex;
-      justify-content: space-between;
-      margin-top: 16px;
-    }
-  }
-</style>

+ 0 - 88
src/views/dashboard/monitor/index.vue

@@ -1,88 +0,0 @@
-<template>
-  <div class="container">
-    <Breadcrumb :items="['menu.dashboard', 'menu.dashboard.monitor']" />
-    <div class="layout">
-      <div class="layout-left-side">
-        <ChatPanel />
-      </div>
-      <div class="layout-content">
-        <a-space :size="16" direction="vertical" fill>
-          <Studio />
-          <DataStatistic />
-        </a-space>
-      </div>
-      <div class="layout-right-side">
-        <a-space :size="16" direction="vertical" fill>
-          <StudioStatus />
-          <QuickOperation />
-          <StudioInformation />
-        </a-space>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script lang="ts" setup>
-  import ChatPanel from './components/chat-panel.vue';
-  import Studio from './components/studio.vue';
-  import DataStatistic from './components/data-statistic.vue';
-  import StudioStatus from './components/studio-status.vue';
-  import QuickOperation from './components/quick-operation.vue';
-  import StudioInformation from './components/studio-information.vue';
-</script>
-
-<script lang="ts">
-  export default {
-    name: 'Monitor',
-  };
-</script>
-
-<style scoped lang="less">
-  .container {
-    padding: 0 10px 10px;
-  }
-
-  .layout {
-    display: flex;
-
-    &-left-side {
-      flex-basis: 300px;
-    }
-
-    &-content {
-      flex: 1;
-      padding: 0 16px;
-    }
-
-    &-right-side {
-      flex-basis: 280px;
-    }
-  }
-</style>
-
-<style lang="less" scoped>
-  // responsive
-  @media (max-width: @screen-lg) {
-    .layout {
-      flex-wrap: wrap;
-
-      &-left-side {
-        flex: 1;
-        flex-basis: 100%;
-        margin-bottom: 16px;
-      }
-
-      &-content {
-        flex: none;
-        flex-basis: 100%;
-        order: -1;
-        margin-bottom: 16px;
-        padding: 0;
-      }
-
-      &-right-side {
-        flex-basis: 100%;
-      }
-    }
-  }
-</style>

+ 0 - 48
src/views/dashboard/monitor/locale/en-US.ts

@@ -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',
-};

+ 0 - 48
src/views/dashboard/monitor/locale/zh-CN.ts

@@ -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': '在看',
-};

+ 0 - 26
src/views/dashboard/monitor/mock.ts

@@ -1,26 +0,0 @@
-import Mock from 'mockjs';
-
-import setupMock, {
-  successResponseWrap,
-  // failResponseWrap,
-} from '@/utils/setup-mock';
-
-setupMock({
-  setup() {
-    Mock.mock(new RegExp('/api/chat/list'), () => {
-      // return failResponseWrap(null, '重新登陆', 50008);
-      const data = Mock.mock({
-        'data|4-6': [
-          {
-            'id|+1': 1,
-            'username': '用户7352772',
-            'content': '马上就开始了,好激动!',
-            'time': '13:09:12',
-            'isCollect|2': true,
-          },
-        ],
-      });
-      return successResponseWrap(data.data);
-    });
-  },
-});

+ 0 - 72
src/views/dashboard/workplace/components/announcement.vue

@@ -1,72 +0,0 @@
-<template>
-  <a-card
-    class="general-card"
-    :title="$t('workplace.announcement')"
-    :header-style="{ paddingBottom: '0' }"
-    :body-style="{ padding: '15px 20px 13px 20px' }"
-  >
-    <template #extra>
-      <a-link>{{ $t('workplace.viewMore') }}</a-link>
-    </template>
-    <div>
-      <div v-for="(item, idx) in list" :key="idx" class="item">
-        <a-tag :color="item.type" size="small">{{ item.label }}</a-tag>
-        <span class="item-content">
-          {{ item.content }}
-        </span>
-      </div>
-    </div>
-  </a-card>
-</template>
-
-<script lang="ts" setup>
-  const list = [
-    {
-      type: 'orangered',
-      label: '活动',
-      content: '内容最新优惠活动',
-    },
-    {
-      type: 'cyan',
-      label: '消息',
-      content: '新增内容尚未通过审核,详情请点击查看。',
-    },
-    {
-      type: 'blue',
-      label: '通知',
-      content: '当前产品试用期即将结束,如需续费请点击查看。',
-    },
-    {
-      type: 'blue',
-      label: '通知',
-      content: '1月新系统升级计划通知',
-    },
-    {
-      type: 'cyan',
-      label: '消息',
-      content: '新增内容已经通过审核,详情请点击查看。',
-    },
-  ];
-</script>
-
-<style scoped lang="less">
-  .item {
-    display: flex;
-    align-items: center;
-    width: 100%;
-    height: 24px;
-    margin-bottom: 4px;
-
-    .item-content {
-      flex: 1;
-      margin-left: 4px;
-      overflow: hidden;
-      color: var(--color-text-2);
-      font-size: 13px;
-      white-space: nowrap;
-      text-decoration: none;
-      text-overflow: ellipsis;
-      cursor: pointer;
-    }
-  }
-</style>

+ 0 - 35
src/views/dashboard/workplace/components/banner.vue

@@ -1,35 +0,0 @@
-<template>
-  <a-col class="banner">
-    <a-col :span="8">
-      <a-typography-title :heading="5" style="margin-top: 0">
-        {{ $t('workplace.welcome') }} {{ userInfo.name }}
-      </a-typography-title>
-    </a-col>
-    <a-divider class="panel-border" />
-  </a-col>
-</template>
-
-<script lang="ts" setup>
-  import { computed } from 'vue';
-  import { useUserStore } from '@/store';
-
-  const userStore = useUserStore();
-  const userInfo = computed(() => {
-    return {
-      name: userStore.name,
-    };
-  });
-</script>
-
-<style scoped lang="less">
-  .banner {
-    width: 100%;
-    padding: 20px 20px 0;
-    background-color: var(--color-bg-2);
-    border-radius: 4px 4px 0 0;
-  }
-
-  :deep(.arco-icon-home) {
-    margin-right: 6px;
-  }
-</style>

+ 0 - 24
src/views/dashboard/workplace/components/carousel.vue

@@ -1,24 +0,0 @@
-<template>
-  <a-carousel
-    indicator-type="slider"
-    show-arrow="hover"
-    auto-play
-    style="width: 100%; height: 170px; overflow: hidden; border-radius: 4px"
-  >
-    <a-carousel-item v-for="(src, idx) in imageSrc" :key="idx">
-      <div>
-        <img :src="src" style="width: 100%" />
-      </div>
-    </a-carousel-item>
-  </a-carousel>
-</template>
-
-<script lang="ts" setup>
-  const imageSrc = [
-    '//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/5cc3cd1d994b7ef9db6a1f619a22addd.jpg~tplv-49unhts6dw-image.image',
-    '//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/f256cbcc287139e191fecea9d255a1f0.jpg~tplv-49unhts6dw-image.image',
-    '//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/b557ff0cd44146a2e471b477af2f30d0.jpg~tplv-49unhts6dw-image.image',
-    '//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/665106f4bbd2a2df96eaf7aec52f7bc3.jpg~tplv-49unhts6dw-image.image',
-    '//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/ea095a2c9c72b5d8f2f2818040db736d.jpg~tplv-49unhts6dw-image.image',
-  ];
-</script>

+ 0 - 136
src/views/dashboard/workplace/components/data-panel.vue

@@ -1,136 +0,0 @@
-<template>
-  <a-grid :cols="24" :row-gap="16" class="panel">
-    <a-grid-item
-      class="panel-col"
-      :span="{ xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 6 }"
-    >
-      <a-space>
-        <a-avatar :size="54" class="col-avatar">
-          <img
-            alt="avatar"
-            src="//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/288b89194e657603ff40db39e8072640.svg~tplv-49unhts6dw-image.image"
-          />
-        </a-avatar>
-        <a-statistic
-          :title="$t('workplace.onlineContent')"
-          :value="373.5"
-          :precision="1"
-          :value-from="0"
-          animation
-          show-group-separator
-        >
-          <template #suffix>
-            W+ <span class="unit">{{ $t('workplace.pecs') }}</span>
-          </template>
-        </a-statistic>
-      </a-space>
-    </a-grid-item>
-    <a-grid-item
-      class="panel-col"
-      :span="{ xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 6 }"
-    >
-      <a-space>
-        <a-avatar :size="54" class="col-avatar">
-          <img
-            alt="avatar"
-            src="//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/fdc66b07224cdf18843c6076c2587eb5.svg~tplv-49unhts6dw-image.image"
-          />
-        </a-avatar>
-        <a-statistic
-          :title="$t('workplace.putIn')"
-          :value="368"
-          :value-from="0"
-          animation
-          show-group-separator
-        >
-          <template #suffix>
-            <span class="unit">{{ $t('workplace.pecs') }}</span>
-          </template>
-        </a-statistic>
-      </a-space>
-    </a-grid-item>
-    <a-grid-item
-      class="panel-col"
-      :span="{ xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 6 }"
-    >
-      <a-space>
-        <a-avatar :size="54" class="col-avatar">
-          <img
-            alt="avatar"
-            src="//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/77d74c9a245adeae1ec7fb5d4539738d.svg~tplv-49unhts6dw-image.image"
-          />
-        </a-avatar>
-        <a-statistic
-          :title="$t('workplace.newDay')"
-          :value="8874"
-          :value-from="0"
-          animation
-          show-group-separator
-        >
-          <template #suffix>
-            <span class="unit">{{ $t('workplace.pecs') }}</span>
-          </template>
-        </a-statistic>
-      </a-space>
-    </a-grid-item>
-    <a-grid-item
-      class="panel-col"
-      :span="{ xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 6 }"
-      style="border-right: none"
-    >
-      <a-space>
-        <a-avatar :size="54" class="col-avatar">
-          <img
-            alt="avatar"
-            src="//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/c8b36e26d2b9bb5dbf9b74dd6d7345af.svg~tplv-49unhts6dw-image.image"
-          />
-        </a-avatar>
-        <a-statistic
-          :title="$t('workplace.newFromYesterday')"
-          :value="2.8"
-          :precision="1"
-          :value-from="0"
-          animation
-        >
-          <template #suffix> % <icon-caret-up class="up-icon" /> </template>
-        </a-statistic>
-      </a-space>
-    </a-grid-item>
-    <a-grid-item :span="24">
-      <a-divider class="panel-border" />
-    </a-grid-item>
-  </a-grid>
-</template>
-
-<script lang="ts" setup></script>
-
-<style lang="less" scoped>
-  .arco-grid.panel {
-    margin-bottom: 0;
-    padding: 16px 20px 0;
-  }
-
-  .panel-col {
-    padding-left: 43px;
-    border-right: 1px solid rgb(var(--gray-2));
-  }
-
-  .col-avatar {
-    margin-right: 12px;
-    background-color: var(--color-fill-2);
-  }
-
-  .up-icon {
-    color: rgb(var(--red-6));
-  }
-
-  .unit {
-    margin-left: 8px;
-    color: rgb(var(--gray-8));
-    font-size: 12px;
-  }
-
-  :deep(.panel-border) {
-    margin: 4px 0 0;
-  }
-</style>

+ 0 - 42
src/views/dashboard/workplace/components/docs.vue

@@ -1,42 +0,0 @@
-<template>
-  <a-card
-    class="general-card"
-    :title="$t('workplace.docs')"
-    :header-style="{ paddingBottom: 0 }"
-    :body-style="{ paddingTop: 0 }"
-    style="height: 166px"
-  >
-    <template #extra>
-      <a-link>{{ $t('workplace.viewMore') }}</a-link>
-    </template>
-    <a-row>
-      <a-col :span="12">
-        <a-link>
-          {{ $t('workplace.docs.productOverview') }}
-        </a-link>
-      </a-col>
-      <a-col :span="12">
-        <a-link>
-          {{ $t('workplace.docs.userGuide') }}
-        </a-link>
-      </a-col>
-      <a-col :span="12">
-        <a-link>
-          {{ $t('workplace.docs.workflow') }}
-        </a-link>
-      </a-col>
-      <a-col :span="12">
-        <a-link>
-          {{ $t('workplace.docs.interfaceDocs') }}
-        </a-link>
-      </a-col>
-    </a-row>
-  </a-card>
-</template>
-
-<style lang="less" scoped>
-  .arco-card-body .arco-link {
-    margin: 10px 0;
-    color: rgb(var(--gray-8));
-  }
-</style>

+ 0 - 122
src/views/dashboard/workplace/components/popular-content.vue

@@ -1,122 +0,0 @@
-<template>
-  <a-spin :loading="loading" style="width: 100%">
-    <a-card
-      class="general-card"
-      :header-style="{ paddingBottom: '0' }"
-      :body-style="{ padding: '17px 20px 21px 20px' }"
-    >
-      <template #title>
-        {{ $t('workplace.popularContent') }}
-      </template>
-      <template #extra>
-        <a-link>{{ $t('workplace.viewMore') }}</a-link>
-      </template>
-      <a-space direction="vertical" :size="10" fill>
-        <a-radio-group
-          v-model:model-value="type"
-          type="button"
-          @change="typeChange as any"
-        >
-          <a-radio value="text">
-            {{ $t('workplace.popularContent.text') }}
-          </a-radio>
-          <a-radio value="image">
-            {{ $t('workplace.popularContent.image') }}
-          </a-radio>
-          <a-radio value="video">
-            {{ $t('workplace.popularContent.video') }}
-          </a-radio>
-        </a-radio-group>
-        <a-table
-          :data="renderList"
-          :pagination="false"
-          :bordered="false"
-          :scroll="{ x: '100%', y: '264px' }"
-        >
-          <template #columns>
-            <a-table-column title="排名" data-index="key"></a-table-column>
-            <a-table-column title="内容标题" data-index="title">
-              <template #cell="{ record }">
-                <a-typography-paragraph
-                  :ellipsis="{
-                    rows: 1,
-                  }"
-                >
-                  {{ record.title }}
-                </a-typography-paragraph>
-              </template>
-            </a-table-column>
-            <a-table-column title="点击量" data-index="clickNumber">
-            </a-table-column>
-            <a-table-column
-              title="日涨幅"
-              data-index="increases"
-              :sortable="{
-                sortDirections: ['ascend', 'descend'],
-              }"
-            >
-              <template #cell="{ record }">
-                <div class="increases-cell">
-                  <span>{{ record.increases }}%</span>
-                  <icon-caret-up
-                    v-if="record.increases !== 0"
-                    style="color: #f53f3f; font-size: 8px"
-                  />
-                </div>
-              </template>
-            </a-table-column>
-          </template>
-        </a-table>
-      </a-space>
-    </a-card>
-  </a-spin>
-</template>
-
-<script lang="ts" setup>
-  import { ref } from 'vue';
-  import useLoading from '@/hooks/loading';
-  import { queryPopularList } from '@/api/dashboard';
-  import type { TableData } from '@arco-design/web-vue/es/table/interface';
-
-  const type = ref('text');
-  const { loading, setLoading } = useLoading();
-  const renderList = ref<TableData[]>();
-  const fetchData = async (contentType: string) => {
-    try {
-      setLoading(true);
-      const { data } = await queryPopularList({ type: contentType });
-      renderList.value = data;
-    } catch (err) {
-      // you can report use errorHandler or other
-    } finally {
-      setLoading(false);
-    }
-  };
-  const typeChange = (contentType: string) => {
-    fetchData(contentType);
-  };
-  fetchData('text');
-</script>
-
-<style scoped lang="less">
-  .general-card {
-    min-height: 395px;
-  }
-
-  :deep(.arco-table-tr) {
-    height: 44px;
-
-    .arco-typography {
-      margin-bottom: 0;
-    }
-  }
-
-  .increases-cell {
-    display: flex;
-    align-items: center;
-
-    span {
-      margin-right: 4px;
-    }
-  }
-</style>

+ 0 - 35
src/views/dashboard/workplace/components/quick-operation.vue

@@ -1,35 +0,0 @@
-<template>
-  <a-card
-    class="general-card"
-    :title="$t('workplace.quick.operation')"
-    :header-style="{ paddingBottom: '0' }"
-    :body-style="{ padding: '24px 20px 0 20px' }"
-  >
-    <template #extra>
-      <a-link>{{ $t('workplace.quickOperation.setup') }}</a-link>
-    </template>
-    <a-row :gutter="8">
-      <a-col v-for="link in links" :key="link.text" :span="8" class="wrapper">
-        <div class="icon">
-          <component :is="link.icon" />
-        </div>
-        <a-typography-paragraph class="text">
-          {{ $t(link.text) }}
-        </a-typography-paragraph>
-      </a-col>
-    </a-row>
-    <a-divider class="split-line" style="margin: 0" />
-  </a-card>
-</template>
-
-<script lang="ts" setup>
-  const links = [
-    { text: 'workplace.contentManagement', icon: 'icon-file' },
-    { text: 'workplace.contentStatistical', icon: 'icon-storage' },
-    { text: 'workplace.advanced', icon: 'icon-settings' },
-    { text: 'workplace.onlinePromotion', icon: 'icon-mobile' },
-    { text: 'workplace.contentPutIn', icon: 'icon-fire' },
-  ];
-</script>
-
-<style scoped lang="less"></style>

+ 0 - 44
src/views/dashboard/workplace/components/recently-visited.vue

@@ -1,44 +0,0 @@
-<template>
-  <a-card
-    class="general-card"
-    :title="$t('workplace.recently.visited')"
-    :header-style="{ paddingBottom: '0' }"
-    :body-style="{ paddingTop: '26px' }"
-  >
-    <div style="margin-bottom: -1rem">
-      <a-row :gutter="8">
-        <a-col v-for="link in links" :key="link.text" :span="8" class="wrapper">
-          <div class="icon">
-            <component :is="link.icon" />
-          </div>
-          <a-typography-paragraph class="text">
-            {{ $t(link.text) }}
-          </a-typography-paragraph>
-        </a-col>
-      </a-row>
-    </div>
-  </a-card>
-</template>
-
-<script lang="ts" setup>
-  const links = [
-    {
-      text: 'workplace.contentManagement',
-      icon: 'icon-storage',
-    },
-    {
-      text: 'workplace.contentStatistical',
-      icon: 'icon-file',
-    },
-    {
-      text: 'workplace.advanced',
-      icon: 'icon-settings',
-    },
-  ];
-</script>
-
-<style lang="less" scoped>
-  :deep(.arco-card-header-title) {
-    line-height: inherit;
-  }
-</style>

+ 8 - 144
src/views/dashboard/workplace/index.vue

@@ -1,150 +1,14 @@
 <template>
-  <div class="container">
-    <div class="left-side">
-      <div class="panel">
-        <Banner />
-        <DataPanel />
-      </div>
-      <a-grid :cols="24" :col-gap="16" :row-gap="16" style="margin-top: 16px">
-        <a-grid-item
-          :span="{ xs: 24, sm: 24, md: 24, lg: 12, xl: 12, xxl: 12 }"
-        >
-          <PopularContent />
-        </a-grid-item>
-        <a-grid-item
-          :span="{ xs: 24, sm: 24, md: 24, lg: 12, xl: 12, xxl: 12 }"
-        >
-        </a-grid-item>
-      </a-grid>
-    </div>
-    <div class="right-side">
-      <a-grid :cols="24" :row-gap="16">
-        <a-grid-item :span="24">
-          <div class="panel moduler-wrap">
-            <QuickOperation />
-            <RecentlyVisited />
-          </div>
-        </a-grid-item>
-        <a-grid-item class="panel" :span="24">
-          <Carousel />
-        </a-grid-item>
-        <a-grid-item class="panel" :span="24">
-          <Announcement />
-        </a-grid-item>
-        <a-grid-item class="panel" :span="24">
-          <Docs />
-        </a-grid-item>
-      </a-grid>
-    </div>
-  </div>
+  <div class="container"></div>
 </template>
 
-<script lang="ts" setup>
-  import Banner from './components/banner.vue';
-  import DataPanel from './components/data-panel.vue';
-  import PopularContent from './components/popular-content.vue';
-  import RecentlyVisited from './components/recently-visited.vue';
-  import QuickOperation from './components/quick-operation.vue';
-  import Announcement from './components/announcement.vue';
-  import Carousel from './components/carousel.vue';
-  import Docs from './components/docs.vue';
-</script>
-
-<script lang="ts">
-  export default {
-    name: 'Dashboard', // If you want the include property of keep-alive to take effect, you must name the component
-  };
-</script>
-
-<style lang="less" scoped>
-  .container {
-    display: flex;
-    padding: 10px;
-    padding-bottom: 0;
-    background-color: var(--color-fill-2);
-  }
-
-  .left-side {
-    flex: 1;
-    overflow: auto;
-  }
-
-  .right-side {
-    width: 280px;
-    margin-left: 16px;
-  }
-
-  .panel {
-    overflow: auto;
-    background-color: var(--color-bg-2);
-    border-radius: 4px;
-  }
-
-  :deep(.panel-border) {
-    margin-bottom: 0;
-    border-bottom: 1px solid rgb(var(--gray-2));
-  }
-
-  .moduler-wrap {
-    background-color: var(--color-bg-2);
-    border-radius: 4px;
-
-    :deep(.text) {
-      color: rgb(var(--gray-8));
-      font-size: 12px;
-      text-align: center;
-    }
-
-    :deep(.wrapper) {
-      margin-bottom: 8px;
-      text-align: center;
-      cursor: pointer;
-
-      &:last-child {
-        .text {
-          margin-bottom: 0;
-        }
-      }
-
-      &:hover {
-        .icon {
-          color: rgb(var(--arcoblue-6));
-          background-color: #e8f3ff;
-        }
-
-        .text {
-          color: rgb(var(--arcoblue-6));
-        }
-      }
-    }
-
-    :deep(.icon) {
-      display: inline-block;
-      width: 32px;
-      height: 32px;
-      margin-bottom: 4px;
-      color: rgb(var(--dark-gray-1));
-      font-size: 16px;
-      line-height: 32px;
-      text-align: center;
-      background-color: rgb(var(--gray-1));
-      border-radius: 4px;
-    }
-  }
-</style>
+<script lang="ts" setup name="Dashboard"></script>
 
 <style lang="less" scoped>
-  // responsive
-  .mobile {
-    .container {
-      display: block;
-    }
-
-    .right-side {
-      // display: none;
-      width: 100%;
-      margin-top: 16px;
-      margin-left: 0;
-    }
-  }
+.container {
+  display: flex;
+  padding: 10px;
+  padding-bottom: 0;
+  background-color: var(--color-fill-2);
+}
 </style>

+ 0 - 34
src/views/dashboard/workplace/locale/en-US.ts

@@ -1,38 +1,4 @@
 export default {
   'menu.dashboard.workplace': 'Workplace',
   'workplace.welcome': 'Welcome!',
-  'workplace.balance': 'Balance (CNY)',
-  'workplace.order.pending': 'Pending',
-  'workplace.order.pendingRenewal': 'Renewal Order',
-  'workplace.onlineContent': 'Online Content',
-  'workplace.putIn': 'Put In',
-  'workplace.newDay': 'Daily Additional Comments',
-  'workplace.newFromYesterday': 'New From Yesterday',
-  'workplace.minute': 'Min',
-  'workplace.docs': 'Documents',
-  'workplace.docs.productOverview': 'Product Overview',
-  'workplace.docs.userGuide': 'User Guide',
-  'workplace.docs.workflow': 'Workflow',
-  'workplace.docs.interfaceDocs': 'Interface Docs',
-  //
-  'workplace.contentManagement': 'Content Management',
-  'workplace.contentStatistical': 'Content Statistical',
-  'workplace.advanced': 'Advanced',
-  'workplace.onlinePromotion': 'Online Promotion',
-  'workplace.contentPutIn': 'Put In',
-  'workplace.announcement': 'Announcement',
-  'workplace.recently.visited': 'Recently Visited',
-  'workplace.record.nodata': 'No data',
-  'workplace.quick.operation': 'Quick Operation',
-  'workplace.quickOperation.setup': 'Setup',
-  'workplace.allProject': 'All',
-  'workplace.loadMore': 'More',
-  'workplace.viewMore': 'More',
-  'workplace.contentData': 'Content Data',
-  'workplace.popularContent': 'Popular Content',
-  'workplace.popularContent.text': 'text',
-  'workplace.popularContent.image': 'image',
-  'workplace.popularContent.video': 'video',
-  'workplace.categoriesPercent': 'Categories Percent',
-  'workplace.pecs': 'pecs',
 };

+ 0 - 33
src/views/dashboard/workplace/locale/zh-CN.ts

@@ -1,37 +1,4 @@
 export default {
   'menu.dashboard.workplace': '工作台',
   'workplace.welcome': '欢迎回来!',
-  'workplace.balance': '余额(元)',
-  'workplace.order.pending': '待支付',
-  'workplace.order.pendingRenewal': '待续费订单',
-  'workplace.onlineContent': '线上总内容',
-  'workplace.putIn': '投放中内容',
-  'workplace.newDay': '日新增评论',
-  'workplace.newFromYesterday': '较昨日新增',
-  'workplace.minute': '分钟',
-  'workplace.docs': '帮助文档',
-  'workplace.docs.productOverview': '产品概要',
-  'workplace.docs.userGuide': '使用指南',
-  'workplace.docs.workflow': '接入流程',
-  'workplace.docs.interfaceDocs': '接口文档',
-  'workplace.contentManagement': '内容管理',
-  'workplace.contentStatistical': '内容分析',
-  'workplace.advanced': '高级管理',
-  'workplace.onlinePromotion': '线上推广',
-  'workplace.contentPutIn': '内容投放',
-  'workplace.announcement': '公告',
-  'workplace.recently.visited': '最近访问',
-  'workplace.record.nodata': '暂无数据',
-  'workplace.quick.operation': '快捷操作',
-  'workplace.quickOperation.setup': '管理',
-  'workplace.allProject': '所有项目',
-  'workplace.loadMore': '加载更多',
-  'workplace.viewMore': '查看更多',
-  'workplace.contentData': '内容数据',
-  'workplace.popularContent': '线上热门内容',
-  'workplace.popularContent.text': '文本',
-  'workplace.popularContent.image': '图片',
-  'workplace.popularContent.video': '视频',
-  'workplace.categoriesPercent': '内容类型占比',
-  'workplace.pecs': '个',
 };