index.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <template>
  2. <PageWrapper :class="prefixCls" title="卡片列表">
  3. <template #headerContent>
  4. 基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的企业级后台管理系统。
  5. <div :class="`${prefixCls}__link`">
  6. <a><Icon icon="bx:bx-paper-plane" color="#1890ff" /><span>开始</span></a>
  7. <a><Icon icon="carbon:warning" color="#1890ff" /><span>简介</span></a>
  8. <a><Icon icon="gg:loadbar-doc" color="#1890ff" /><span>文档</span></a>
  9. </div>
  10. </template>
  11. <div :class="`${prefixCls}__content`">
  12. <a-list>
  13. <a-row :gutter="16">
  14. <template v-for="(item, index) in list" :key="index">
  15. <a-col :span="6">
  16. <a-list-item>
  17. <a-card :hoverable="true" :class="`${prefixCls}__card`">
  18. <div :class="`${prefixCls}__card-title`">
  19. <Icon class="icon" v-if="item.icon" :icon="item.icon" :color="item.color" />
  20. {{ item.title }}
  21. </div>
  22. <div :class="`${prefixCls}__card-detail`">
  23. 基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的企业级后台管理系统
  24. </div>
  25. </a-card>
  26. </a-list-item>
  27. </a-col>
  28. </template>
  29. </a-row>
  30. </a-list>
  31. </div>
  32. </PageWrapper>
  33. </template>
  34. <script lang="ts">
  35. import { defineComponent } from 'vue';
  36. import Icon from '/@/components/Icon/index';
  37. import { cardList } from './data';
  38. import { PageWrapper } from '/@/components/Page';
  39. export default defineComponent({
  40. components: { Icon, PageWrapper },
  41. setup() {
  42. return {
  43. prefixCls: 'list-card',
  44. list: cardList,
  45. };
  46. },
  47. });
  48. </script>
  49. <style lang="less" scoped>
  50. .list-card {
  51. &__link {
  52. margin-top: 10px;
  53. font-size: 14px;
  54. a {
  55. margin-right: 30px;
  56. }
  57. span {
  58. margin-left: 5px;
  59. }
  60. }
  61. &__card {
  62. width: 100%;
  63. margin-bottom: -8px;
  64. .ant-card-body {
  65. padding: 16px;
  66. }
  67. &-title {
  68. margin-bottom: 5px;
  69. font-size: 16px;
  70. font-weight: 500;
  71. color: rgba(0, 0, 0, 0.85);
  72. .icon {
  73. margin-top: -5px;
  74. margin-right: 10px;
  75. font-size: 38px !important;
  76. }
  77. }
  78. &-detail {
  79. padding-top: 10px;
  80. padding-left: 30px;
  81. font-size: 14px;
  82. color: rgba(0, 0, 0, 0.5);
  83. }
  84. }
  85. }
  86. </style>