| <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 20px 20px 20px; | 
|   } | 
|   | 
|   .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%; | 
|         padding: 0; | 
|         order: -1; | 
|         margin-bottom: 16px; | 
|       } | 
|   | 
|       &-right-side { | 
|         flex-basis: 100%; | 
|       } | 
|     } | 
|   } | 
| </style> |