QuickAction.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <div>
  3. <div class="quick-title">快捷操作</div>
  4. <!-- <el-divider /> -->
  5. <div class="quick-content">
  6. <div v-for="item in quickList" class="quick-go" @click="goPage(item.address)">
  7. <img :src="item.img" alt="" />
  8. <div class="quick-name">{{ item.name }}</div>
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <script setup lang="ts">
  14. import { ref } from 'vue';
  15. import CameraConfig from '@/assets/camera/camera-config.png';
  16. import CameraPlayback from '@/assets/camera/camera-playback.png';
  17. import CameraPreview from '@/assets/camera/camera-preview.png';
  18. import AlgoManage from '@/assets/camera/algorithm-manage.png';
  19. import UserManage from '@/assets/camera/user-manage.png';
  20. import OrgaManage from '@/assets/camera/organization-manage.png';
  21. import { useRouter } from 'vue-router';
  22. import { ElMessage } from 'element-plus';
  23. const router = useRouter();
  24. const quickList = ref([
  25. { name: '相机配置', img: CameraConfig, address: '/cameras/overview' },
  26. { name: '相机回放', img: CameraPlayback, address: '' },
  27. { name: '相机预览', img: CameraPreview, address: '/cameras/preview' },
  28. { name: '算法管理', img: AlgoManage, address: '/cameras/algo-manager' },
  29. { name: '用户管理', img: UserManage, address: '/auth/user' },
  30. { name: '组织管理', img: OrgaManage, address: '' },
  31. ]);
  32. const goPage = (address) => {
  33. if (!address) {
  34. ElMessage({
  35. message: '该通道暂未开放',
  36. type: 'warning',
  37. });
  38. return;
  39. }
  40. router.push(address);
  41. };
  42. </script>
  43. <style scoped>
  44. .quick-title {
  45. font-size: 16px;
  46. margin-top: 19px;
  47. margin-left: 24px;
  48. margin-bottom: 10px;
  49. }
  50. /* .el-divider--horizontal {
  51. margin: 0px;
  52. } */
  53. .quick-go {
  54. width: 139px;
  55. height: 149px;
  56. margin-top: 2px;
  57. box-sizing: border-box;
  58. display: flex;
  59. flex-direction: column;
  60. justify-content: center;
  61. align-items: center;
  62. background-color: white;
  63. }
  64. .quick-go:hover {
  65. box-shadow: 2px 1px 10px rgba(0, 0, 0, 0.5);
  66. cursor: pointer;
  67. }
  68. .quick-content {
  69. display: flex;
  70. flex-wrap: wrap;
  71. justify-content: space-between;
  72. background-color: #f0f2f5;
  73. }
  74. .quick-name {
  75. margin-top: 19px;
  76. font-size: 16px;
  77. }
  78. </style>