From 697c1463caa531a59fdb368079230a55adce5120 Mon Sep 17 00:00:00 2001 From: NiceAsiv Date: Thu, 8 Aug 2024 18:17:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + pnpm-lock.yaml | 27 ++++ src/components/Card/Card.vue | 47 ++++++ src/router/modules/project.ts | 22 +++ src/views/dashboard/index.vue | 168 +++++++++++++++++++++- src/views/project/ProjectDetail.vue | 70 +++++++++ src/views/project/ProjectManagement.vue | 182 ++++++++++++++++++++++++ 7 files changed, 513 insertions(+), 4 deletions(-) create mode 100644 src/components/Card/Card.vue create mode 100644 src/router/modules/project.ts create mode 100644 src/views/project/ProjectDetail.vue create mode 100644 src/views/project/ProjectManagement.vue diff --git a/package.json b/package.json index c714122..5d0f6ad 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "responsive-storage": "^2.2.0", "sortablejs": "^1.15.2", "vue": "^3.4.31", + "vue-chartjs": "^5.3.1", "vue-router": "^4.4.0", "vue-tippy": "^6.4.4", "vue-types": "^5.1.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdd03a2..cdd639d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -71,6 +71,9 @@ importers: vue: specifier: ^3.4.31 version: 3.4.31(typescript@5.5.3) + vue-chartjs: + specifier: ^5.3.1 + version: 5.3.1(chart.js@4.4.3)(vue@3.4.31(typescript@5.5.3)) vue-router: specifier: ^4.4.0 version: 4.4.0(vue@3.4.31(typescript@5.5.3)) @@ -894,6 +897,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@kurkle/color@0.3.2': + resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1450,6 +1456,10 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chart.js@4.4.3: + resolution: {integrity: sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==} + engines: {pnpm: '>=8'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -3772,6 +3782,12 @@ packages: vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vue-chartjs@5.3.1: + resolution: {integrity: sha512-rZjqcHBxKiHrBl0CIvcOlVEBwRhpWAVf6rDU3vUfa7HuSRmGtCslc0Oc8m16oAVuk0erzc1FCtH1VCriHsrz+A==} + peerDependencies: + chart.js: ^4.1.1 + vue: ^3.0.0-0 || ^2.7.0 + vue-demi@0.14.8: resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} engines: {node: '>=12'} @@ -4511,6 +4527,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + '@kurkle/color@0.3.2': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5176,6 +5194,10 @@ snapshots: chalk@5.3.0: {} + chart.js@4.4.3: + dependencies: + '@kurkle/color': 0.3.2 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -7602,6 +7624,11 @@ snapshots: vscode-uri@3.0.8: {} + vue-chartjs@5.3.1(chart.js@4.4.3)(vue@3.4.31(typescript@5.5.3)): + dependencies: + chart.js: 4.4.3 + vue: 3.4.31(typescript@5.5.3) + vue-demi@0.14.8(vue@3.4.31(typescript@5.5.3)): dependencies: vue: 3.4.31(typescript@5.5.3) diff --git a/src/components/Card/Card.vue b/src/components/Card/Card.vue new file mode 100644 index 0000000..ce316fa --- /dev/null +++ b/src/components/Card/Card.vue @@ -0,0 +1,47 @@ + + + + + + diff --git a/src/router/modules/project.ts b/src/router/modules/project.ts new file mode 100644 index 0000000..fef7446 --- /dev/null +++ b/src/router/modules/project.ts @@ -0,0 +1,22 @@ +export default { + path: "/project", + name: "Project", + redirect: "/project/index", + meta: { + title: "项目管理", + icon: "ri:projector-line", + rank: 1 + }, + component: () => import("@/layout/index.vue"), + children: [ + { + path: "/project/index", + name: "ProjectIndex", + component: () => import("@/views/project/ProjectManagement.vue"), + meta: { + title: "项目管理", + showLink: true + } + } + ] +}; diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index cfdcf82..ac1e9f8 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -1,11 +1,171 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/project/ProjectDetail.vue b/src/views/project/ProjectDetail.vue new file mode 100644 index 0000000..a2e6183 --- /dev/null +++ b/src/views/project/ProjectDetail.vue @@ -0,0 +1,70 @@ + + + + + + diff --git a/src/views/project/ProjectManagement.vue b/src/views/project/ProjectManagement.vue new file mode 100644 index 0000000..ca8ee20 --- /dev/null +++ b/src/views/project/ProjectManagement.vue @@ -0,0 +1,182 @@ + + + + +