From 38288714e2ab06c161fc7c73751579054e062fc7 Mon Sep 17 00:00:00 2001
From: zhangshuai <1016868503@qq.com>
Date: Wed, 13 Jul 2022 14:48:12 +0800
Subject: [PATCH] =?UTF-8?q?feat(ISO=E9=A1=B5=E9=9D=A2):=E5=AE=8C=E6=88=90?=
=?UTF-8?q?=E4=BA=86ISO=E5=8D=A1=E7=89=87=E5=88=97=E8=A1=A8=E7=9A=84?=
=?UTF-8?q?=E9=9D=99=E6=80=81=E6=B8=B2=E6=9F=93=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
feat(镜像页面,ISO界面):完成了镜像列表页面渲染逻辑的生成、ISO卡片列表静态渲染逻辑
新增 svg icon
style(ISO界面、镜像列表):修改命名规范、api调用方式
style(api):修改注释的规范
---
app/.vitepress/src/api/api-mirror.ts | 14 +
.../src/assets/svg-icons/icon-add.svg | 4 +
.../src/assets/svg-icons/icon-arrow-down.svg | 4 +
.../src/assets/svg-icons/icon-arrow-left.svg | 4 +
.../src/assets/svg-icons/icon-arrow-left1.svg | 4 +
.../src/assets/svg-icons/icon-arrow-right.svg | 4 +
.../assets/svg-icons/icon-arrow-right1.svg | 4 +
.../src/assets/svg-icons/icon-arrow-up.svg | 5 +
.../src/assets/svg-icons/icon-browse.svg | 4 +
.../src/assets/svg-icons/icon-calendar.svg | 4 +
.../src/assets/svg-icons/icon-cancel.svg | 4 +
.../src/assets/svg-icons/icon-cancel1.svg | 4 +
.../src/assets/svg-icons/icon-checked.svg | 5 +
.../assets/svg-icons/icon-chevron-down.svg | 4 +
.../assets/svg-icons/icon-chevron-left.svg | 4 +
.../assets/svg-icons/icon-chevron-right.svg | 4 +
.../src/assets/svg-icons/icon-chevron-up.svg | 4 +
.../src/assets/svg-icons/icon-comment.svg | 4 +
.../src/assets/svg-icons/icon-copy.svg | 4 +
.../src/assets/svg-icons/icon-dark1.svg | 4 +
.../src/assets/svg-icons/icon-dark2.svg | 4 +
.../src/assets/svg-icons/icon-delete.svg | 4 +
.../src/assets/svg-icons/icon-dividers.svg | 4 +
.../src/assets/svg-icons/icon-doc.svg | 4 +
.../assets/svg-icons/icon-done-outline.svg | 4 +
.../src/assets/svg-icons/icon-done-solid.svg | 4 +
.../src/assets/svg-icons/icon-done.svg | 4 +
.../src/assets/svg-icons/icon-download.svg | 4 +
.../src/assets/svg-icons/icon-ellipsis.svg | 6 +
.../src/assets/svg-icons/icon-home.svg | 4 +
.../src/assets/svg-icons/icon-light1.svg | 4 +
.../src/assets/svg-icons/icon-light2.svg | 4 +
.../src/assets/svg-icons/icon-link.svg | 4 +
.../assets/svg-icons/icon-live-streaming.svg | 4 +
.../src/assets/svg-icons/icon-mail.svg | 4 +
.../src/assets/svg-icons/icon-more.svg | 4 +
.../src/assets/svg-icons/icon-refresh.svg | 4 +
.../assets/svg-icons/icon-required-fields.svg | 4 +
.../src/assets/svg-icons/icon-search.svg | 4 +
.../assets/svg-icons/icon-star-outlined.svg | 4 +
.../src/assets/svg-icons/icon-star-solid.svg | 4 +
.../src/assets/svg-icons/icon-tag.svg | 5 +
.../src/assets/svg-icons/icon-time.svg | 4 +
.../src/assets/svg-icons/icon-tips.svg | 4 +
.../src/assets/svg-icons/icon-toggle-off.svg | 4 +
.../src/assets/svg-icons/icon-toggle-on.svg | 4 +
.../src/assets/svg-icons/icon-unchecked.svg | 4 +
.../src/assets/svg-icons/icon-user.svg | 4 +
.../src/assets/svg-icons/icon-video.svg | 4 +
.../src/assets/svg-icons/map-pin.svg | 4 +
.../src/views/download/TheDownload.vue | 963 ++++++++++++++++++
.../src/views/download/TheMirList.vue | 240 +++++
app/vite.config.js | 9 +
app/zh/download/index.md | 5 +
app/zh/mirror/index.md | 5 +
opendesign/card/OCard.vue | 2 +-
pnpm-lock.yaml | 1 +
57 files changed, 1439 insertions(+), 1 deletion(-)
create mode 100644 app/.vitepress/src/api/api-mirror.ts
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-add.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-arrow-down.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-arrow-left.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-arrow-left1.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-arrow-right.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-arrow-right1.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-arrow-up.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-browse.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-calendar.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-cancel.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-cancel1.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-checked.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-chevron-down.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-chevron-left.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-chevron-right.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-chevron-up.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-comment.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-copy.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-dark1.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-dark2.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-delete.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-dividers.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-doc.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-done-outline.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-done-solid.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-done.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-download.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-ellipsis.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-home.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-light1.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-light2.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-link.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-live-streaming.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-mail.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-more.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-refresh.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-required-fields.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-search.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-star-outlined.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-star-solid.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-tag.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-time.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-tips.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-toggle-off.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-toggle-on.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-unchecked.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-user.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/icon-video.svg
create mode 100644 app/.vitepress/src/assets/svg-icons/map-pin.svg
create mode 100644 app/.vitepress/src/views/download/TheDownload.vue
create mode 100644 app/.vitepress/src/views/download/TheMirList.vue
create mode 100644 app/zh/download/index.md
create mode 100644 app/zh/mirror/index.md
diff --git a/app/.vitepress/src/api/api-mirror.ts b/app/.vitepress/src/api/api-mirror.ts
new file mode 100644
index 000000000..dfb9585e6
--- /dev/null
+++ b/app/.vitepress/src/api/api-mirror.ts
@@ -0,0 +1,14 @@
+/**
+ * 调用接口获取镜像列表
+ * @name getAllMirror
+ * @param {boolean} mirrorstats 镜像状态 true-运行的镜像
+ * @return {Array} 镜像列表
+ */
+
+import { request } from '@/shared/axios';
+import type { AxiosResponse } from '@/shared/axios';
+
+export function getAllMirror() {
+ const url = '/api-mirror/?mirrorstats=true';
+ return request.get(url).then((res: AxiosResponse) => res.data);
+}
diff --git a/app/.vitepress/src/assets/svg-icons/icon-add.svg b/app/.vitepress/src/assets/svg-icons/icon-add.svg
new file mode 100644
index 000000000..de17cbdc9
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-add.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-arrow-down.svg b/app/.vitepress/src/assets/svg-icons/icon-arrow-down.svg
new file mode 100644
index 000000000..c47b18d3d
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-arrow-down.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-arrow-left.svg b/app/.vitepress/src/assets/svg-icons/icon-arrow-left.svg
new file mode 100644
index 000000000..27b72d68c
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-arrow-left.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-arrow-left1.svg b/app/.vitepress/src/assets/svg-icons/icon-arrow-left1.svg
new file mode 100644
index 000000000..e0392c33c
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-arrow-left1.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-arrow-right.svg b/app/.vitepress/src/assets/svg-icons/icon-arrow-right.svg
new file mode 100644
index 000000000..b13302ad7
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-arrow-right.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-arrow-right1.svg b/app/.vitepress/src/assets/svg-icons/icon-arrow-right1.svg
new file mode 100644
index 000000000..fe354712f
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-arrow-right1.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-arrow-up.svg b/app/.vitepress/src/assets/svg-icons/icon-arrow-up.svg
new file mode 100644
index 000000000..3eb80e7ad
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-arrow-up.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-browse.svg b/app/.vitepress/src/assets/svg-icons/icon-browse.svg
new file mode 100644
index 000000000..0d2f29bb5
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-browse.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-calendar.svg b/app/.vitepress/src/assets/svg-icons/icon-calendar.svg
new file mode 100644
index 000000000..fcc7b2470
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-calendar.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-cancel.svg b/app/.vitepress/src/assets/svg-icons/icon-cancel.svg
new file mode 100644
index 000000000..0c6c13a8f
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-cancel.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-cancel1.svg b/app/.vitepress/src/assets/svg-icons/icon-cancel1.svg
new file mode 100644
index 000000000..43f8b5dfb
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-cancel1.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-checked.svg b/app/.vitepress/src/assets/svg-icons/icon-checked.svg
new file mode 100644
index 000000000..1ed90de59
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-checked.svg
@@ -0,0 +1,5 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-chevron-down.svg b/app/.vitepress/src/assets/svg-icons/icon-chevron-down.svg
new file mode 100644
index 000000000..66b976e32
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-chevron-down.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-chevron-left.svg b/app/.vitepress/src/assets/svg-icons/icon-chevron-left.svg
new file mode 100644
index 000000000..52bee9e62
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-chevron-left.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-chevron-right.svg b/app/.vitepress/src/assets/svg-icons/icon-chevron-right.svg
new file mode 100644
index 000000000..b2ddf7390
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-chevron-right.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-chevron-up.svg b/app/.vitepress/src/assets/svg-icons/icon-chevron-up.svg
new file mode 100644
index 000000000..29bd404e0
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-chevron-up.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-comment.svg b/app/.vitepress/src/assets/svg-icons/icon-comment.svg
new file mode 100644
index 000000000..bcfad8936
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-comment.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-copy.svg b/app/.vitepress/src/assets/svg-icons/icon-copy.svg
new file mode 100644
index 000000000..b04681aea
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-copy.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-dark1.svg b/app/.vitepress/src/assets/svg-icons/icon-dark1.svg
new file mode 100644
index 000000000..9c30f70ae
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-dark1.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-dark2.svg b/app/.vitepress/src/assets/svg-icons/icon-dark2.svg
new file mode 100644
index 000000000..324001958
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-dark2.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-delete.svg b/app/.vitepress/src/assets/svg-icons/icon-delete.svg
new file mode 100644
index 000000000..40827cd99
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-delete.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-dividers.svg b/app/.vitepress/src/assets/svg-icons/icon-dividers.svg
new file mode 100644
index 000000000..2509bf149
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-dividers.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-doc.svg b/app/.vitepress/src/assets/svg-icons/icon-doc.svg
new file mode 100644
index 000000000..44b0f8077
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-doc.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-done-outline.svg b/app/.vitepress/src/assets/svg-icons/icon-done-outline.svg
new file mode 100644
index 000000000..22d49d60e
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-done-outline.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-done-solid.svg b/app/.vitepress/src/assets/svg-icons/icon-done-solid.svg
new file mode 100644
index 000000000..e17ccdb88
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-done-solid.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-done.svg b/app/.vitepress/src/assets/svg-icons/icon-done.svg
new file mode 100644
index 000000000..e295ef2ed
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-done.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-download.svg b/app/.vitepress/src/assets/svg-icons/icon-download.svg
new file mode 100644
index 000000000..fc5d0ab85
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-download.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-ellipsis.svg b/app/.vitepress/src/assets/svg-icons/icon-ellipsis.svg
new file mode 100644
index 000000000..a55a52f95
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-ellipsis.svg
@@ -0,0 +1,6 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-home.svg b/app/.vitepress/src/assets/svg-icons/icon-home.svg
new file mode 100644
index 000000000..7da985cf1
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-home.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-light1.svg b/app/.vitepress/src/assets/svg-icons/icon-light1.svg
new file mode 100644
index 000000000..e74868f38
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-light1.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-light2.svg b/app/.vitepress/src/assets/svg-icons/icon-light2.svg
new file mode 100644
index 000000000..a0c79d7f2
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-light2.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-link.svg b/app/.vitepress/src/assets/svg-icons/icon-link.svg
new file mode 100644
index 000000000..3414d33f1
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-link.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-live-streaming.svg b/app/.vitepress/src/assets/svg-icons/icon-live-streaming.svg
new file mode 100644
index 000000000..8212eddb7
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-live-streaming.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-mail.svg b/app/.vitepress/src/assets/svg-icons/icon-mail.svg
new file mode 100644
index 000000000..f16e057c9
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-mail.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-more.svg b/app/.vitepress/src/assets/svg-icons/icon-more.svg
new file mode 100644
index 000000000..c5b5317fa
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-more.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-refresh.svg b/app/.vitepress/src/assets/svg-icons/icon-refresh.svg
new file mode 100644
index 000000000..2acdac4c4
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-refresh.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-required-fields.svg b/app/.vitepress/src/assets/svg-icons/icon-required-fields.svg
new file mode 100644
index 000000000..af1ab576e
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-required-fields.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-search.svg b/app/.vitepress/src/assets/svg-icons/icon-search.svg
new file mode 100644
index 000000000..846548ace
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-search.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-star-outlined.svg b/app/.vitepress/src/assets/svg-icons/icon-star-outlined.svg
new file mode 100644
index 000000000..edcc7c2fe
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-star-outlined.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-star-solid.svg b/app/.vitepress/src/assets/svg-icons/icon-star-solid.svg
new file mode 100644
index 000000000..aedbbb1b6
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-star-solid.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-tag.svg b/app/.vitepress/src/assets/svg-icons/icon-tag.svg
new file mode 100644
index 000000000..c371c2bb4
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-tag.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-time.svg b/app/.vitepress/src/assets/svg-icons/icon-time.svg
new file mode 100644
index 000000000..314459da8
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-time.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-tips.svg b/app/.vitepress/src/assets/svg-icons/icon-tips.svg
new file mode 100644
index 000000000..353019407
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-tips.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-toggle-off.svg b/app/.vitepress/src/assets/svg-icons/icon-toggle-off.svg
new file mode 100644
index 000000000..0649a7e4d
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-toggle-off.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-toggle-on.svg b/app/.vitepress/src/assets/svg-icons/icon-toggle-on.svg
new file mode 100644
index 000000000..4c26e9e81
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-toggle-on.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-unchecked.svg b/app/.vitepress/src/assets/svg-icons/icon-unchecked.svg
new file mode 100644
index 000000000..1c36619f7
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-unchecked.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-user.svg b/app/.vitepress/src/assets/svg-icons/icon-user.svg
new file mode 100644
index 000000000..302067cbb
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-user.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/icon-video.svg b/app/.vitepress/src/assets/svg-icons/icon-video.svg
new file mode 100644
index 000000000..f9cd5ecc7
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/icon-video.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/.vitepress/src/assets/svg-icons/map-pin.svg b/app/.vitepress/src/assets/svg-icons/map-pin.svg
new file mode 100644
index 000000000..65d4a6ffc
--- /dev/null
+++ b/app/.vitepress/src/assets/svg-icons/map-pin.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/app/.vitepress/src/views/download/TheDownload.vue b/app/.vitepress/src/views/download/TheDownload.vue
new file mode 100644
index 000000000..122c9fcb4
--- /dev/null
+++ b/app/.vitepress/src/views/download/TheDownload.vue
@@ -0,0 +1,963 @@
+
+
+
+
+
+
+
+ {{ download.NAME }}
+
+
+ {{ download.DESC }}
+
+
+ 立即下载
+
+
+
+
+
+
+
+
diff --git a/app/.vitepress/src/views/download/TheMirList.vue b/app/.vitepress/src/views/download/TheMirList.vue
new file mode 100644
index 000000000..821b01464
--- /dev/null
+++ b/app/.vitepress/src/views/download/TheMirList.vue
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.rsnc }}
+
+
+
+
+
+ {{ scope.row.ftp }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/vite.config.js b/app/vite.config.js
index 188cc23ee..d4411377e 100644
--- a/app/vite.config.js
+++ b/app/vite.config.js
@@ -51,4 +51,13 @@ export default defineConfig({
// useSource: true,
// }),
],
+ server: {
+ proxy: {
+ '/api-mirror': {
+ target: 'https://api.openeuler.org/mirrors',
+ changeOrigin: true,
+ rewrite: (path) => path.replace(/^\/api-mirror/, ''),
+ },
+ },
+ },
});
diff --git a/app/zh/download/index.md b/app/zh/download/index.md
new file mode 100644
index 000000000..1f698762f
--- /dev/null
+++ b/app/zh/download/index.md
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/zh/mirror/index.md b/app/zh/mirror/index.md
new file mode 100644
index 000000000..0b715cc9d
--- /dev/null
+++ b/app/zh/mirror/index.md
@@ -0,0 +1,5 @@
+
+
+
diff --git a/opendesign/card/OCard.vue b/opendesign/card/OCard.vue
index d487dc041..d77b6f58d 100644
--- a/opendesign/card/OCard.vue
+++ b/opendesign/card/OCard.vue
@@ -5,7 +5,7 @@ const attrs = useAttrs();
-
+