|
@@ -1,4 +1,6 @@
|
|
|
import apiTools from '@/api'
|
|
|
+import jwtDecode from 'jwt-decode'
|
|
|
+
|
|
|
export default {
|
|
|
namespaced: true,
|
|
|
state: {
|
|
@@ -175,11 +177,11 @@ export default {
|
|
|
setSchoolProfile(state, data) {
|
|
|
state.schoolProfile.blob_sas = data.blob_sas // 老師在學校的Blob金鑰,讀寫
|
|
|
state.schoolProfile.blob_uri = data.blob_uri // 老師在學校的Blob網址
|
|
|
- state.schoolProfile.courses = data.courses // 老師在學校的的個人課程
|
|
|
- state.schoolProfile.syllabus = data.syllabus // 老師在學校的的個人課綱
|
|
|
- state.schoolProfile.periods = data.periods // 學制
|
|
|
- state.schoolProfile.grades = data.grades // 年級
|
|
|
- state.schoolProfile.classes = data.classes // 課堂
|
|
|
+ state.schoolProfile.courses = data.school_courses // 老師在學校的的個人課程
|
|
|
+ state.schoolProfile.syllabus = data.school_syllabus // 老師在學校的的個人課綱
|
|
|
+ state.schoolProfile.classes = data.school_classes // 課堂
|
|
|
+ state.schoolProfile.periods = data.fmtPeriods // 學制
|
|
|
+ state.schoolProfile.grades = data.fmtGrades // 年級
|
|
|
},
|
|
|
setStudentProfile(state, data) {
|
|
|
state.studentProfile.blob_uri = data.blob_uri // 學生在學校的Blob網址
|
|
@@ -507,16 +509,74 @@ export default {
|
|
|
},
|
|
|
setSchoolProfile(context, data) {
|
|
|
localStorage.setItem('school_profile', encodeURIComponent(JSON.stringify(data),"utf-8"))
|
|
|
+ let fmtPeriods = [];
|
|
|
+ let fmtGrades = [];
|
|
|
+
|
|
|
+ data.school_base.period.forEach( item => {
|
|
|
+ // 學制List
|
|
|
+ fmtPeriods.push({ 'id': item.id, 'name': item.name})
|
|
|
+
|
|
|
+ // 年級List
|
|
|
+ item.grades.forEach( gradeItem => {
|
|
|
+ fmtGrades.push({ 'periodId': item.id, 'id': gradeItem.id, 'name': gradeItem.name})
|
|
|
+ })
|
|
|
+ })
|
|
|
+ data.fmtPeriods = fmtPeriods
|
|
|
+ data.fmtGrades = fmtGrades
|
|
|
+
|
|
|
context.commit('setSchoolProfile', data)
|
|
|
},
|
|
|
setStudentProfile(context, data) {
|
|
|
localStorage.setItem('student_profile', encodeURIComponent(JSON.stringify(data),"utf-8"))
|
|
|
context.commit('setStudentProfile', data)
|
|
|
},
|
|
|
- checkSchoolProfile(context) {
|
|
|
- let school_profile = localStorage.getItem('school_profile')
|
|
|
- if(school_profile){
|
|
|
- context.commit('setSchoolProfile', JSON.parse(decodeURIComponent(school_profile,"utf-8")))
|
|
|
+ async checkSchoolProfile(context) {
|
|
|
+
|
|
|
+ let login_schooCode = localStorage.getItem('login_schooCode')
|
|
|
+ let id_token = localStorage.getItem('id_token')
|
|
|
+
|
|
|
+ if(login_schooCode && id_token){
|
|
|
+ // 輸出暫存
|
|
|
+ let result;
|
|
|
+
|
|
|
+ let info = {
|
|
|
+ roles: '',
|
|
|
+ permissions: ''
|
|
|
+ }
|
|
|
+
|
|
|
+ await apiTools.login.getTeacherSchoolInfo({
|
|
|
+ id_token: id_token,
|
|
|
+ school_code: login_schooCode
|
|
|
+ }).then( res => {
|
|
|
+ console.log(res,'uyuytuyutuytyutuu')
|
|
|
+ // 沒有錯誤的話
|
|
|
+ if (!res.error) {
|
|
|
+ // 儲存大雲Token
|
|
|
+ localStorage.setItem("auth_token", res.auth_token)
|
|
|
+ context.dispatch('setSchoolProfile', res)
|
|
|
+ result = res
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ console.log(err)
|
|
|
+ })
|
|
|
+
|
|
|
+ let authBySchool = jwtDecode(result.auth_token)
|
|
|
+ info.roles = authBySchool.roles
|
|
|
+ info.permissions = authBySchool.permissions == null ? [] : authBySchool.permissions
|
|
|
+
|
|
|
+ let userInfo = JSON.parse(decodeURIComponent(localStorage.getItem('userInfo'),"utf-8"))
|
|
|
+ userInfo.roles = info.roles
|
|
|
+ userInfo.permissions = info.permissions
|
|
|
+ localStorage.setItem('userInfo', encodeURIComponent(JSON.stringify(userInfo),"utf-8"))
|
|
|
+
|
|
|
+ let userAccess = JSON.parse(decodeURIComponent(localStorage.getItem('userAccess'),"utf-8"))
|
|
|
+ userAccess.roles = info.roles
|
|
|
+ userAccess.permissions = info.permissions
|
|
|
+ localStorage.setItem('userAccess', encodeURIComponent(JSON.stringify(userAccess),"utf-8"))
|
|
|
+
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
}
|
|
|
},
|
|
|
checkStudentProfile(context) {
|