Selaa lähdekoodia

feat: add cc-simple test page for routing debug

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
yb 2 viikkoa sitten
vanhempi
commit
0e630f733c
4 muutettua tiedostoa jossa 76 lisäystä ja 14 poistoa
  1. 0 14
      src/components.d.ts
  2. 1 0
      src/layout/index.vue
  3. 6 0
      src/router/index.ts
  4. 69 0
      src/views/demo/cc-simple.vue

+ 0 - 14
src/components.d.ts

@@ -8,50 +8,37 @@ export {}
 declare module 'vue' {
   export interface GlobalComponents {
     ElAlert: typeof import('element-plus/es')['ElAlert']
-    ElAside: typeof import('element-plus/es')['ElAside']
-    ElAvatar: typeof import('element-plus/es')['ElAvatar']
-    ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
-    ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
     ElButton: typeof import('element-plus/es')['ElButton']
     ElCard: typeof import('element-plus/es')['ElCard']
     ElCol: typeof import('element-plus/es')['ElCol']
     ElCollapse: typeof import('element-plus/es')['ElCollapse']
     ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
-    ElContainer: typeof import('element-plus/es')['ElContainer']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
     ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
     ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
     ElDialog: typeof import('element-plus/es')['ElDialog']
     ElDivider: typeof import('element-plus/es')['ElDivider']
-    ElDrawer: typeof import('element-plus/es')['ElDrawer']
     ElDropdown: typeof import('element-plus/es')['ElDropdown']
     ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
     ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
     ElEmpty: typeof import('element-plus/es')['ElEmpty']
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
-    ElHeader: typeof import('element-plus/es')['ElHeader']
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElImage: typeof import('element-plus/es')['ElImage']
     ElInput: typeof import('element-plus/es')['ElInput']
     ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
     ElLink: typeof import('element-plus/es')['ElLink']
-    ElMain: typeof import('element-plus/es')['ElMain']
-    ElMenu: typeof import('element-plus/es')['ElMenu']
-    ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
     ElOption: typeof import('element-plus/es')['ElOption']
     ElOptionGroup: typeof import('element-plus/es')['ElOptionGroup']
     ElPagination: typeof import('element-plus/es')['ElPagination']
     ElProgress: typeof import('element-plus/es')['ElProgress']
-    ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
-    ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
     ElResult: typeof import('element-plus/es')['ElResult']
     ElRow: typeof import('element-plus/es')['ElRow']
     ElSelect: typeof import('element-plus/es')['ElSelect']
     ElSlider: typeof import('element-plus/es')['ElSlider']
     ElSpace: typeof import('element-plus/es')['ElSpace']
     ElStatistic: typeof import('element-plus/es')['ElStatistic']
-    ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
     ElSwitch: typeof import('element-plus/es')['ElSwitch']
     ElTable: typeof import('element-plus/es')['ElTable']
     ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
@@ -59,7 +46,6 @@ declare module 'vue' {
     ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
     ElText: typeof import('element-plus/es')['ElText']
-    ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElUpload: typeof import('element-plus/es')['ElUpload']
     HelloWorld: typeof import('./components/HelloWorld.vue')['default']
     IEpArrowDown: typeof import('~icons/ep/arrow-down')['default']

+ 1 - 0
src/layout/index.vue

@@ -415,6 +415,7 @@ const menuItems: MenuItem[] = [
   { path: '/camera', title: '摄像头管理', icon: CameraIcon },
   // { path: '/user', title: '用户管理', icon: UserIcon },
   { path: '/cc', title: 'Cloudflare Stream', icon: CloudIcon },
+  { path: '/cc-simple', title: 'CC Simple', icon: CloudIcon },
   { path: '/webrtc', title: 'WebRTC 流', icon: ConnectionIcon },
   {
     path: '/demo',

+ 6 - 0
src/router/index.ts

@@ -86,6 +86,12 @@ const routes: RouteRecordRaw[] = [
         component: () => import('@/views/demo/cloudflareStream.vue'),
         meta: { title: 'Cloudflare Stream', icon: 'VideoCamera' }
       },
+      {
+        path: 'cc-simple',
+        name: 'CCSimple',
+        component: () => import('@/views/demo/cc-simple.vue'),
+        meta: { title: 'CC Simple', icon: 'VideoCamera' }
+      },
       {
         path: 'webrtc',
         name: 'WebrtcStream',

+ 69 - 0
src/views/demo/cc-simple.vue

@@ -0,0 +1,69 @@
+<template>
+  <div class="page-container">
+    <div class="page-header">
+      <span class="title">CC Simple 测试页面</span>
+    </div>
+
+    <div class="content-section">
+      <h2>这是一个简单的测试页面</h2>
+      <p>如果你能看到这个页面,说明路由正常工作。</p>
+      <p>当前时间: {{ currentTime }}</p>
+
+      <el-button type="primary" @click="showMessage">点击测试</el-button>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref, onMounted } from 'vue'
+import { ElMessage } from 'element-plus'
+
+const currentTime = ref('')
+
+onMounted(() => {
+  currentTime.value = new Date().toLocaleString()
+})
+
+function showMessage() {
+  ElMessage.success('按钮点击成功!')
+}
+</script>
+
+<style lang="scss" scoped>
+.page-container {
+  min-height: 100vh;
+  background-color: var(--bg-page);
+}
+
+.page-header {
+  display: flex;
+  align-items: center;
+  margin-bottom: 20px;
+  padding: 15px 20px;
+  background-color: var(--bg-container);
+  border-radius: var(--radius-base);
+  color: var(--text-primary);
+
+  .title {
+    font-size: 18px;
+    font-weight: 600;
+  }
+}
+
+.content-section {
+  padding: 40px;
+  background-color: var(--bg-container);
+  border-radius: var(--radius-base);
+  text-align: center;
+
+  h2 {
+    color: var(--text-primary);
+    margin-bottom: 20px;
+  }
+
+  p {
+    color: var(--text-regular);
+    margin-bottom: 15px;
+  }
+}
+</style>