Commit 3a132f3f4f4e08b4675c157548aa093b3a1c3c94

Authored by 陈小婷
1 parent 737b1b19

feat: add card-list page

src/router/menus/modules/demo/page.ts
@@ -106,6 +106,19 @@ const menu: MenuModule = { @@ -106,6 +106,19 @@ const menu: MenuModule = {
106 }, 106 },
107 ], 107 ],
108 }, 108 },
  109 + {
  110 + path: 'list',
  111 + name: '列表页',
  112 + tag: {
  113 + content: 'new',
  114 + },
  115 + children: [
  116 + {
  117 + path: 'card',
  118 + name: '卡片列表',
  119 + },
  120 + ],
  121 + },
109 ], 122 ],
110 }, 123 },
111 }; 124 };
src/router/routes/modules/demo/page.ts
@@ -209,6 +209,26 @@ const page: AppRouteModule = { @@ -209,6 +209,26 @@ const page: AppRouteModule = {
209 ], 209 ],
210 }, 210 },
211 // =============================exception end============================= 211 // =============================exception end=============================
  212 + // =============================list start=============================
  213 + {
  214 + path: '/list',
  215 + name: 'ListPage',
  216 + redirect: '/page-demo/list/card',
  217 + meta: {
  218 + title: '列表页',
  219 + },
  220 + children: [
  221 + {
  222 + path: 'card',
  223 + name: 'ListCardPage',
  224 + component: () => import('/@/views/demo/page/list/card/index.vue'),
  225 + meta: {
  226 + title: '卡片列表',
  227 + },
  228 + },
  229 + ],
  230 + },
  231 + // =============================list end=============================
212 ], 232 ],
213 }; 233 };
214 234
src/views/demo/page/account/center/Application.vue
@@ -52,6 +52,7 @@ @@ -52,6 +52,7 @@
52 .account-center-application { 52 .account-center-application {
53 &__card { 53 &__card {
54 width: 100%; 54 width: 100%;
  55 + margin-bottom: -12px;
55 56
56 .ant-card-body { 57 .ant-card-body {
57 padding: 16px; 58 padding: 16px;
src/views/demo/page/list/card/data.tsx 0 → 100644
  1 +export const cardList = (() => {
  2 + const result: any[] = [];
  3 + for (let i = 0; i < 12; i++) {
  4 + result.push({
  5 + title: 'Vben Admin',
  6 + icon: 'logos:ant-design',
  7 + color: '#1890ff',
  8 + active: '100',
  9 + new: '1,799',
  10 + download: 'bx:bx-download',
  11 + });
  12 + }
  13 + return result;
  14 +})();
src/views/demo/page/list/card/index.vue 0 → 100644
  1 +<template>
  2 + <div :class="prefixCls">
  3 + <a-page-header title="卡片列表" :ghost="false">
  4 + 基于Vue Next, TypeScript, Ant Design实现的一套完整的企业级后台管理系统。
  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 + </a-page-header>
  11 +
  12 + <div :class="`${prefixCls}__content`">
  13 + <List>
  14 + <a-row :gutter="16">
  15 + <template v-for="(item, index) in list" :key="index">
  16 + <a-col :span="6">
  17 + <ListItem>
  18 + <Card :hoverable="true" :class="`${prefixCls}__card`">
  19 + <div :class="`${prefixCls}__card-title`">
  20 + <Icon class="icon" v-if="item.icon" :icon="item.icon" :color="item.color" />
  21 + {{ item.title }}
  22 + </div>
  23 + <div :class="`${prefixCls}__card-detail`">
  24 + 基于Vue Next, TypeScript, Ant Design实现的一套完整的企业级后台管理系统
  25 + </div>
  26 + </Card>
  27 + </ListItem>
  28 + </a-col>
  29 + </template>
  30 + </a-row>
  31 + </List>
  32 + </div>
  33 + </div>
  34 +</template>
  35 +<script lang="ts">
  36 + import { defineComponent } from 'vue';
  37 + import { List, Card } from 'ant-design-vue';
  38 + import Icon from '/@/components/Icon/index';
  39 + import { cardList } from './data';
  40 +
  41 + export default defineComponent({
  42 + components: { Icon, List, ListItem: List.Item, Card },
  43 + setup() {
  44 + return {
  45 + prefixCls: 'list-card',
  46 + list: cardList,
  47 + };
  48 + },
  49 + });
  50 +</script>
  51 +<style lang="less" scoped>
  52 + .list-card {
  53 + &__link {
  54 + margin-top: 10px;
  55 + font-size: 14px;
  56 +
  57 + a {
  58 + margin-right: 30px;
  59 + }
  60 +
  61 + span {
  62 + margin-left: 5px;
  63 + }
  64 + }
  65 +
  66 + &__content {
  67 + padding: 12px 24px;
  68 + // background: #fff;
  69 + }
  70 +
  71 + &__card {
  72 + width: 100%;
  73 + margin-bottom: -8px;
  74 +
  75 + .ant-card-body {
  76 + padding: 16px;
  77 + }
  78 +
  79 + &-title {
  80 + margin-bottom: 5px;
  81 + font-size: 16px;
  82 + font-weight: 500;
  83 + color: rgba(0, 0, 0, 0.85);
  84 +
  85 + .icon {
  86 + margin-top: -5px;
  87 + margin-right: 10px;
  88 + font-size: 38px !important;
  89 + }
  90 + }
  91 +
  92 + &-detail {
  93 + padding-top: 10px;
  94 + padding-left: 30px;
  95 + font-size: 14px;
  96 + color: rgba(0, 0, 0, 0.5);
  97 + }
  98 + }
  99 + }
  100 +</style>