File tree Expand file tree Collapse file tree 6 files changed +22
-2
lines changed Expand file tree Collapse file tree 6 files changed +22
-2
lines changed Original file line number Diff line number Diff line change 1010 "dependencies" : {
1111 "core-js" : " ^3.8.3" ,
1212 "vue" : " ^3.4.15" ,
13+ "vue-ellipse-progress" : " ^2.1.2" ,
1314 "vuex" : " ^4.1.0"
1415 },
1516 "devDependencies" : {
Original file line number Diff line number Diff line change 55 <br />
66 <p >XP: {{ xps }}</p >
77 <br />
8+ <ve-progress :progress =" progresses" >Level {{ levels }}</ve-progress >
89 <ul class =" todos" >
910 <li v-for =" todo in todos" :key =" todo.newId" class =" todo" >
1011 <span
@@ -76,6 +77,9 @@ export default defineComponent({
7677 xps() {
7778 return store .getters .getXp ; // get current xp
7879 },
80+ progresses() {
81+ return store .getters .getProgress ; // get curent progress
82+ },
7983 },
8084 methods: {
8185 completeTodo : function (id : number ) {
Original file line number Diff line number Diff line change 11import { createApp , h } from "vue" ;
22import App from "./App.vue" ;
33import store from "./store" ;
4+ import veProgress from "vue-ellipse-progress" ;
45
56createApp ( { render : ( ) => h ( App ) } )
67 . use ( store )
8+ . use ( veProgress )
79 . mount ( "#app" ) ;
810store . dispatch ( "loadUser" ) ; //load user data
911store . dispatch ( "loadTodos" ) ; //load task list data
Original file line number Diff line number Diff line change @@ -6,12 +6,14 @@ export default createStore({
66 user : {
77 level : 0 ,
88 xp : 0 ,
9+ progress : 0 ,
910 } ,
1011 } ,
1112 getters : {
1213 getTodos : ( state ) => state . todos , //get task list
1314 getXp : ( state ) => state . user . xp , //get user xp
1415 getLevel : ( state ) => state . user . level , //get user level
16+ getProgress : ( state ) => state . user . progress , //get user level progress
1517 } ,
1618 mutations : {
1719 updateXp : ( state , payload ) => {
@@ -20,6 +22,11 @@ export default createStore({
2022 ) ;
2123 const xp = Math . max ( task . difficulty * task . priority , 1 ) ; //get at least 1 xp when the task is completed
2224 state . user . xp += xp ;
25+ state . user . level = Math . floor ( Math . pow ( state . user . xp , 1 / 3 ) ) ; //calculate level based on how many xp
26+ state . user . progress =
27+ ( ( state . user . xp - Math . pow ( state . user . level , 3 ) ) /
28+ ( Math . pow ( state . user . level + 1 , 3 ) - Math . pow ( state . user . level , 3 ) ) ) *
29+ 100 ; //calculate level progress
2330 } ,
2431 create_Todo : ( state , payload ) => {
2532 const createTask = {
Original file line number Diff line number Diff line change 1+ declare module "vue-ellipse-progress" ;
Original file line number Diff line number Diff line change 11{
22 "compilerOptions" : {
3+ "typeRoots" : [
4+ " ./types" ,
5+ " ./node_modules/@types"
6+ ],
37 "target" : " esnext" ,
48 "module" : " esnext" ,
59 "strict" : true ,
3539 " tests/**/*.tsx"
3640 ],
3741 "exclude" : [
38- " node_modules"
42+ " node_modules" ,
43+ " typings"
3944 ]
40- }
45+ }
You can’t perform that action at this time.
0 commit comments