diff --git a/locales/en.yaml b/locales/en.yaml index 99b31360b..78cb4c3cf 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -74,3 +74,5 @@ menus: hsAntTabs: Imitate Antdv Tabs hsAntAnchor: Imitate Antdv Anchor hsAntTreeSelect: Imitate Antdv TreeSelector + list: List Page + listCard: Card List page diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index c31044c01..b4c0a4347 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -74,3 +74,5 @@ menus: hsAntTabs: 仿antdv标签页 hsAntAnchor: 仿antdv锚点 hsAntTreeSelect: 仿antdv树型选择器 + list: 列表页 + listCard: 卡片列表页 diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts index d022fd5f1..1a20d1d11 100644 --- a/mock/asyncRoutes.ts +++ b/mock/asyncRoutes.ts @@ -127,7 +127,7 @@ const tabsRouter = { icon: "IF-team-icontabs", title: "menus.hstabs", i18n: true, - rank: 12 + rank: 13 }, children: [ { diff --git a/mock/list.ts b/mock/list.ts new file mode 100644 index 000000000..385899d34 --- /dev/null +++ b/mock/list.ts @@ -0,0 +1,456 @@ +import { MockMethod } from "vite-plugin-mock"; + +export default [ + { + url: "/getCardList", + method: "post", + response: () => { + return { + code: 0, + data: { + list: [ + { + index: 1, + isSetup: true, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "SSL证书", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 2, + isSetup: false, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "人脸识别", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 3, + isSetup: false, + type: 5, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "CVM", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 4, + isSetup: false, + type: 2, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "SSL证书", + description: + "云数据库MySQL为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。" + }, + { + index: 5, + isSetup: true, + type: 3, + banner: + "https://tdesign.gtimg.com/tdesign-pro/face-recognition.jpg", + name: "SSL证书", + description: + "云数据库MySQL为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。" + }, + { + index: 6, + isSetup: true, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "T-Sec 云防火墙", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 7, + isSetup: false, + type: 1, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "CVM", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 8, + isSetup: true, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "SSL证书", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 9, + isSetup: false, + type: 1, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "SSL证书", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 10, + isSetup: true, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "CVM", + description: + "云数据库MySQL为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。" + }, + { + index: 11, + isSetup: true, + type: 5, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "云数据库", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 12, + isSetup: true, + type: 2, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "SSL证书", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 13, + isSetup: true, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-db.jpg", + name: "云数据库", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 14, + isSetup: false, + type: 5, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "SSL证书", + description: + "基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸" + }, + { + index: 15, + isSetup: true, + type: 2, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "云数据库", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 16, + isSetup: false, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "CVM", + description: + "基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸" + }, + { + index: 17, + isSetup: false, + type: 5, + banner: + "https://tdesign.gtimg.com/tdesign-pro/face-recognition.jpg", + name: "云数据库", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 18, + isSetup: false, + type: 4, + banner: + "https://tdesign.gtimg.com/tdesign-pro/face-recognition.jpg", + name: "云数据库", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 19, + isSetup: true, + type: 2, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "CVM", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 20, + isSetup: true, + type: 4, + banner: + "https://tdesign.gtimg.com/tdesign-pro/face-recognition.jpg", + name: "SSL证书", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 21, + isSetup: false, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "云数据库", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 22, + isSetup: false, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-db.jpg", + name: "CVM", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 23, + isSetup: true, + type: 1, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "人脸识别", + description: + "基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸" + }, + { + index: 24, + isSetup: true, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "人脸识别", + description: + "基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸" + }, + { + index: 25, + isSetup: false, + type: 5, + banner: + "https://tdesign.gtimg.com/tdesign-pro/face-recognition.jpg", + name: "CVM", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 26, + isSetup: true, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "SSL证书", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 27, + isSetup: true, + type: 5, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "CVM", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 28, + isSetup: false, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "云数据库", + description: + "基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸" + }, + { + index: 29, + isSetup: false, + type: 5, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-db.jpg", + name: "CVM", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 30, + isSetup: true, + type: 1, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "CVM", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 31, + isSetup: true, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "CVM", + description: + "基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸" + }, + { + index: 32, + isSetup: false, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "T-Sec 云防火墙", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 33, + isSetup: true, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "CVM", + description: + "云数据库MySQL为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。" + }, + { + index: 34, + isSetup: false, + type: 2, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "SSL证书", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 35, + isSetup: false, + type: 1, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "云数据库", + description: + "基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸" + }, + { + index: 36, + isSetup: false, + type: 4, + banner: + "https://tdesign.gtimg.com/tdesign-pro/face-recognition.jpg", + name: "SSL证书", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 37, + isSetup: true, + type: 5, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "CVM", + description: + "云数据库MySQL为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。" + }, + { + index: 38, + isSetup: false, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "云数据库", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 39, + isSetup: false, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "人脸识别", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 40, + isSetup: true, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "CVM", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 41, + isSetup: true, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "T-Sec 云防火墙", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 42, + isSetup: true, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "T-Sec 云防火墙", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 43, + isSetup: false, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-db.jpg", + name: "SSL证书", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 44, + isSetup: true, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/t-sec.jpg", + name: "SSL证书", + description: + "云硬盘为您提供用于CVM的持久性数据块级存储服务。云硬盘中的数据自动地可用区内以多副本冗" + }, + { + index: 45, + isSetup: false, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "T-Sec 云防火墙", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 46, + isSetup: true, + type: 2, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "SSL证书", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + }, + { + index: 47, + isSetup: false, + type: 4, + banner: "https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg", + name: "SSL证书", + description: + "腾讯安全云防火墙产品,是腾讯云安全团队结合云原生的优势,自主研发的SaaS化防火墙产品,无需客无需客无需客无需客无需客无需客无需客" + }, + { + index: 48, + isSetup: false, + type: 3, + banner: "https://tdesign.gtimg.com/tdesign-pro/ssl.jpg", + name: "T-Sec 云防火墙", + description: + "SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部" + } + ] + }, + msg: "" + }; + } + } +] as MockMethod[]; diff --git a/src/api/list.ts b/src/api/list.ts new file mode 100644 index 000000000..e361bcfbc --- /dev/null +++ b/src/api/list.ts @@ -0,0 +1,12 @@ +import { http } from "../utils/http"; + +interface postType extends Promise { + data?: object; + code?: number; + msg?: string; +} + +// 卡片列表 +export const getCardList = (data?: object): postType => { + return http.request("post", "/getCardList", { data }); +}; diff --git a/src/assets/svg/calendar.svg b/src/assets/svg/calendar.svg new file mode 100644 index 000000000..bbc713004 --- /dev/null +++ b/src/assets/svg/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/laptop.svg b/src/assets/svg/laptop.svg new file mode 100644 index 000000000..e50017f12 --- /dev/null +++ b/src/assets/svg/laptop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/service.svg b/src/assets/svg/service.svg new file mode 100644 index 000000000..abf11deab --- /dev/null +++ b/src/assets/svg/service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/shop.svg b/src/assets/svg/shop.svg new file mode 100644 index 000000000..0ab5fd877 --- /dev/null +++ b/src/assets/svg/shop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/user_avatar.svg b/src/assets/svg/user_avatar.svg new file mode 100644 index 000000000..2b60743fd --- /dev/null +++ b/src/assets/svg/user_avatar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/ReCard/index.ts b/src/components/ReCard/index.ts new file mode 100644 index 000000000..68d7cf57a --- /dev/null +++ b/src/components/ReCard/index.ts @@ -0,0 +1,10 @@ +import { App } from "vue"; +import reCard from "./src/index.vue"; + +export const ReCard = Object.assign(reCard, { + install(app: App) { + app.component(reCard.name, reCard); + } +}); + +export default ReCard; diff --git a/src/components/ReCard/src/index.vue b/src/components/ReCard/src/index.vue new file mode 100644 index 000000000..de4ea6b0f --- /dev/null +++ b/src/components/ReCard/src/index.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/components/ReIcon/src/iconifyIconOffline.ts b/src/components/ReIcon/src/iconifyIconOffline.ts index 43e20afeb..04b109b1f 100644 --- a/src/components/ReIcon/src/iconifyIconOffline.ts +++ b/src/components/ReIcon/src/iconifyIconOffline.ts @@ -71,6 +71,9 @@ import arrowUpLine from "@iconify-icons/ri/arrow-up-line"; import arrowDownLine from "@iconify-icons/ri/arrow-down-line"; import bookmark2Line from "@iconify-icons/ri/bookmark-2-line"; import addFill from "@iconify-icons/ri/add-circle-line"; +import listCheck from "@iconify-icons/ri/list-check"; +import more2Fill from "@iconify-icons/ri/more-2-fill"; + addIcon("arrow-right-s-line", arrowRightSLine); addIcon("arrow-left-s-line", arrowLeftSLine); addIcon("logout-circle-r-line", logoutCircleRLine); @@ -84,6 +87,8 @@ addIcon("arrow-up-line", arrowUpLine); addIcon("arrow-down-line", arrowDownLine); addIcon("bookmark-2-line", bookmark2Line); addIcon("add", addFill); +addIcon("list-check", listCheck); +addIcon("more-2-fill", more2Fill); // Font Awesome 4 import faUser from "@iconify-icons/fa/user"; diff --git a/src/router/index.ts b/src/router/index.ts index 3c4dceabe..fdce0c43c 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -30,6 +30,7 @@ import { import homeRouter from "./modules/home"; import ableRouter from "./modules/able"; +import listRouter from "./modules/list"; import aboutRouter from "./modules/about"; import errorRouter from "./modules/error"; import guideRouter from "./modules/guide"; @@ -44,6 +45,7 @@ import componentsRouter from "./modules/components"; const routes = [ homeRouter, ableRouter, + listRouter, aboutRouter, errorRouter, guideRouter, diff --git a/src/router/modules/about.ts b/src/router/modules/about.ts index c93bcfc2f..9d03f4ed3 100644 --- a/src/router/modules/about.ts +++ b/src/router/modules/about.ts @@ -9,7 +9,7 @@ const aboutRouter = { icon: "question-line", title: $t("menus.hsAbout"), i18n: true, - rank: 14 + rank: 15 }, children: [ { diff --git a/src/router/modules/guide.ts b/src/router/modules/guide.ts index 7fb474f43..84de1f9f5 100644 --- a/src/router/modules/guide.ts +++ b/src/router/modules/guide.ts @@ -9,7 +9,7 @@ const guideRouter = { icon: "guide", title: $t("menus.hsguide"), i18n: true, - rank: 13 + rank: 14 }, children: [ { diff --git a/src/router/modules/list.ts b/src/router/modules/list.ts new file mode 100644 index 000000000..1dd3fc57b --- /dev/null +++ b/src/router/modules/list.ts @@ -0,0 +1,28 @@ +import { $t } from "/@/plugins/i18n"; +const Layout = () => import("/@/layout/index.vue"); + +const ableRouter = { + path: "/list", + component: Layout, + redirect: "/list/card", + meta: { + icon: "list-check", + title: $t("menus.list"), + i18n: true, + rank: 12 + }, + children: [ + { + path: "/list/card", + name: "listCard", + component: () => import("/@/views/list/card/index.vue"), + meta: { + title: $t("menus.listCard"), + i18n: true, + showParent: true + } + } + ] +}; + +export default ableRouter; diff --git a/src/views/list/card/components/DialogForm.vue b/src/views/list/card/components/DialogForm.vue new file mode 100644 index 000000000..992fd3c62 --- /dev/null +++ b/src/views/list/card/components/DialogForm.vue @@ -0,0 +1,146 @@ + + + diff --git a/src/views/list/card/index.vue b/src/views/list/card/index.vue new file mode 100644 index 000000000..1cbf41805 --- /dev/null +++ b/src/views/list/card/index.vue @@ -0,0 +1,179 @@ + + + + + + +