From 963df01b6f572e41c09f7f1891d47aaa0383af38 Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Sat, 9 Nov 2019 22:29:19 -0500 Subject: [PATCH] [+] Create pie graph component --- src/pages/course/type-pie/type-pie.ts | 71 ++++++++++++++++++++++++++ src/pages/course/type-pie/type-pie.vue | 8 +++ 2 files changed, 79 insertions(+) create mode 100644 src/pages/course/type-pie/type-pie.ts create mode 100644 src/pages/course/type-pie/type-pie.vue diff --git a/src/pages/course/type-pie/type-pie.ts b/src/pages/course/type-pie/type-pie.ts new file mode 100644 index 0000000..34e6c0d --- /dev/null +++ b/src/pages/course/type-pie/type-pie.ts @@ -0,0 +1,71 @@ +import {Component, Prop, Vue} from 'vue-property-decorator'; +import Constants from '@/constants'; +import {FormatUtils} from '@/logic/utils/format-utils'; +import moment from 'moment'; +import Course, {Assignment} from '@/logic/course'; +import GraphUtils from '@/logic/utils/graph-utils'; + +@Component +export default class TypePie extends Vue +{ + @Prop({required: true}) course: Course; + + /** + * Override options + * + * @param options Original options (Unused) + */ + afterConfig(options: any) + { + return this.chartSettings; + } + + /** + * Generate settings + */ + get chartSettings() + { + // Create settings + let settings = + { + ...GraphUtils.getBaseSettings('Type Radar', + 'Assignment type grades for ' + this.course.name), + + tooltip: {}, + + // Data + series: + { + type: 'radar', + data: + [ + { + name: 'Score', + symbol: 'circle', + areaStyle: + { + color: + { + type: 'radial', + x: 0.5, y: 0.6, r: 0.5, + colorStops: + [ + {offset: 0, color: '#ffa0a0'}, + {offset: 0.5, color: '#fffead'}, + {offset: 1, color: '#d1ffde'} + ], + global: false // 缺省为 false + }, + opacity: 0.2 + }, + value: this.course.assignmentTypes.map(t => t.percent) + } + ] + }, + + color: '#6771c1' + }; + + return settings; + } +} diff --git a/src/pages/course/type-pie/type-pie.vue b/src/pages/course/type-pie/type-pie.vue new file mode 100644 index 0000000..bd08fcb --- /dev/null +++ b/src/pages/course/type-pie/type-pie.vue @@ -0,0 +1,8 @@ + + + +