浏览代码

spider graph with chart.js

tags/0.0.2
juancarbajal98 3 年前
父节点
当前提交
605ff63b41
共有 4 个文件被更改,包括 107 次插入28 次删除
  1. 11
    0
      frontend/package-lock.json
  2. 1
    0
      frontend/package.json
  3. 65
    0
      frontend/src/components/SpiderChart.vue
  4. 30
    28
      frontend/src/views/HomeView.vue

+ 11
- 0
frontend/package-lock.json 查看文件

@@ -8,6 +8,7 @@
8 8
             "name": "vite-project",
9 9
             "version": "0.0.0",
10 10
             "dependencies": {
11
+                "chart.js": "^3.9.1",
11 12
                 "joi": "^17.6.0",
12 13
                 "pubnub": "^5.0.0",
13 14
                 "vue": "^3.2.31",
@@ -1288,6 +1289,11 @@
1288 1289
                 "is-regex": "^1.0.3"
1289 1290
             }
1290 1291
         },
1292
+        "node_modules/chart.js": {
1293
+            "version": "3.9.1",
1294
+            "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz",
1295
+            "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w=="
1296
+        },
1291 1297
         "node_modules/chokidar": {
1292 1298
             "version": "3.5.3",
1293 1299
             "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -6918,6 +6924,11 @@
6918 6924
                 "is-regex": "^1.0.3"
6919 6925
             }
6920 6926
         },
6927
+        "chart.js": {
6928
+            "version": "3.9.1",
6929
+            "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz",
6930
+            "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w=="
6931
+        },
6921 6932
         "chokidar": {
6922 6933
             "version": "3.5.3",
6923 6934
             "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",

+ 1
- 0
frontend/package.json 查看文件

@@ -12,6 +12,7 @@
12 12
         "test": "ava"
13 13
     },
14 14
     "dependencies": {
15
+        "chart.js": "^3.9.1",
15 16
         "joi": "^17.6.0",
16 17
         "pubnub": "^5.0.0",
17 18
         "vue": "^3.2.31",

+ 65
- 0
frontend/src/components/SpiderChart.vue 查看文件

@@ -0,0 +1,65 @@
1
+<template lang="pug">
2
+div
3
+    canvas(id='spiderChart')
4
+</template>
5
+<script>
6
+import {Chart, registerables} from 'chart.js'
7
+Chart.register(...registerables)
8
+
9
+const data = {
10
+    labels: [
11
+        'Resourceful',
12
+        'Improv',
13
+        'Dynamic',
14
+        'Precise',
15
+        'Methodical',
16
+        'Ordered'
17
+    ],
18
+    datasets:[{
19
+        label: 'First dataset',
20
+        fill: true,
21
+        backgroundColor: 'rgb(255, 33, 33)',
22
+        borderColor: 'rgb(255, 99, 132)',
23
+        data: [1,2,3,4,5,6],
24
+        pointBackgroundColor: 'rgb(255, 99, 132)',
25
+        pointBorderColor: '#fff',
26
+        pointHoverBackgroundColor: '#fff',
27
+        pointHoverBorderColor: 'rgb(255, 99, 132)'
28
+    }, {
29
+        label: 'My Second Dataset',
30
+        data: [6,5,4,3,2,1],
31
+        fill: true,
32
+        backgroundColor: 'rgba(54, 162, 235, 0.2)',
33
+        borderColor: 'rgb(54, 162, 235)',
34
+        pointBackgroundColor: 'rgb(54, 162, 235)',
35
+        pointBorderColor: '#fff',
36
+        pointHoverBackgroundColor: '#fff',
37
+        pointHoverBorderColor: 'rgb(54, 162, 235)'
38
+    }]
39
+}
40
+
41
+const config = {
42
+    type: 'radar',
43
+    data: data,
44
+    options: {
45
+        elements:{
46
+            line:{
47
+                borderWidth: 3
48
+            }
49
+        }
50
+    }
51
+}
52
+
53
+export default{
54
+    name:'SpiderChart',
55
+    data(){
56
+        return {
57
+            spiderChartData:config
58
+        }
59
+    },
60
+    mounted() {
61
+        const ctx = document.getElementById('spiderChart');
62
+        new Chart(ctx, this.spiderChartData);
63
+    }
64
+}
65
+</script>

+ 30
- 28
frontend/src/views/HomeView.vue 查看文件

@@ -1,35 +1,35 @@
1 1
 <template lang="pug">
2
-main.view--home
3
-    
4
-    article(v-if='cards.length && !loading')
5
-        ProfileCardList(:pid='pid' :cards='cards' @reload='getCards')
2
+SpiderChart
3
+//- main.view--home
4
+    //- article(v-if='cards.length && !loading')
5
+    //-     ProfileCardList(:pid='pid' :cards='cards' @reload='getCards')
6 6
 
7
-    p(v-else-if='cards.length === 0') No profiles in match_queue.
8
-    w-spinner(v-else bounce)
7
+    //- p(v-else-if='cards.length === 0') No profiles in match_queue.
8
+    //- w-spinner(v-else bounce)
9 9
 
10
-    footer
11
-        w-form
12
-            w-input.mb2(
13
-                inner-icon-left='mdi mdi-account'
14
-                label='Full Name'
15
-                label-position='inside'
16
-                outline
17
-            )
18
-            w-input.mb2(
19
-                inner-icon-left='mdi mdi-mail'
20
-                label='E-mail'
21
-                label-position='inside'
22
-                outline
23
-            )
24
-            w-input.mb2(
25
-                inner-icon-left='mdi mdi-lock'
26
-                label='Password'
27
-                label-position='inside'
28
-                outline
29
-                type='password'
30
-            )
10
+    //- footer
11
+    //-     w-form
12
+    //-         w-input.mb2(
13
+    //-             inner-icon-left='mdi mdi-account'
14
+    //-             label='Full Name'
15
+    //-             label-position='inside'
16
+    //-             outline
17
+    //-         )
18
+    //-         w-input.mb2(
19
+    //-             inner-icon-left='mdi mdi-mail'
20
+    //-             label='E-mail'
21
+    //-             label-position='inside'
22
+    //-             outline
23
+    //-         )
24
+    //-         w-input.mb2(
25
+    //-             inner-icon-left='mdi mdi-lock'
26
+    //-             label='Password'
27
+    //-             label-position='inside'
28
+    //-             outline
29
+    //-             type='password'
30
+    //-         )
31 31
 
32
-    MainNav
32
+    //- MainNav
33 33
 </template>
34 34
 
35 35
 <script>
@@ -39,6 +39,7 @@ import TagList from '../components/TagList.vue'
39 39
 import AspectBar from '../components/AspectBar.vue'
40 40
 import SummaryBar from '../components/SummaryBar.vue'
41 41
 import PairingButton from '../components/PairingButton.vue'
42
+import SpiderChart from '../components/SpiderChart.vue'
42 43
 
43 44
 import { Card } from '../entities'
44 45
 
@@ -86,6 +87,7 @@ export default {
86 87
         TagList,
87 88
         SummaryBar,
88 89
         PairingButton,
90
+        SpiderChart,
89 91
     },
90 92
     mixins: [mixins.pidMixin, mixins.cardMixin],
91 93
     methods: {

正在加载...
取消
保存