| <template> | 
|   <div class="container"> | 
|     <div class="left-side"> | 
|       <div class="panel"> | 
|         <Banner /> | 
|         <DataPanel /> | 
|         <ContentChart /> | 
|       </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 }" | 
|         > | 
|           <CategoriesPercent /> | 
|         </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> | 
| </template> | 
|   | 
| <script lang="ts" setup> | 
|   import Banner from './components/banner.vue'; | 
|   import DataPanel from './components/data-panel.vue'; | 
|   import ContentChart from './components/content-chart.vue'; | 
|   import PopularContent from './components/popular-content.vue'; | 
|   import CategoriesPercent from './components/categories-percent.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 { | 
|     background-color: var(--color-fill-2); | 
|     padding: 16px 20px; | 
|     padding-bottom: 0; | 
|     display: flex; | 
|   } | 
|   | 
|   .left-side { | 
|     flex: 1; | 
|     overflow: auto; | 
|   } | 
|   | 
|   .right-side { | 
|     width: 280px; | 
|     margin-left: 16px; | 
|   } | 
|   | 
|   .panel { | 
|     background-color: var(--color-bg-2); | 
|     border-radius: 4px; | 
|     overflow: auto; | 
|   } | 
|   :deep(.panel-border) { | 
|     margin-bottom: 0; | 
|     border-bottom: 1px solid rgb(var(--gray-2)); | 
|   } | 
|   .moduler-wrap { | 
|     border-radius: 4px; | 
|     background-color: var(--color-bg-2); | 
|     :deep(.text) { | 
|       font-size: 12px; | 
|       text-align: center; | 
|       color: rgb(var(--gray-8)); | 
|     } | 
|   | 
|     :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)); | 
|       line-height: 32px; | 
|       font-size: 16px; | 
|       text-align: center; | 
|       background-color: rgb(var(--gray-1)); | 
|       border-radius: 4px; | 
|     } | 
|   } | 
| </style> | 
|   | 
| <style lang="less" scoped> | 
|   // responsive | 
|   .mobile { | 
|     .container { | 
|       display: block; | 
|     } | 
|     .right-side { | 
|       // display: none; | 
|       width: 100%; | 
|       margin-left: 0; | 
|       margin-top: 16px; | 
|     } | 
|   } | 
| </style> |