|
@@ -1,4 +1,6 @@
|
|
|
import apiTools from '@/api'
|
|
|
+import jwtDecode from 'jwt-decode'
|
|
|
+
|
|
|
export default {
|
|
|
namespaced: true,
|
|
|
state: {
|
|
@@ -18,11 +20,8 @@ export default {
|
|
|
schoolProfile:{ // 老師在學校的設定檔
|
|
|
blob_uri: undefined, // 學校Blob網址
|
|
|
blob_sas: undefined, // 學校Blob金鑰,讀
|
|
|
- //courses: undefined, // 老師的校本課程
|
|
|
- //syllabus: undefined, // 老師的校本課綱
|
|
|
- //periods: undefined, // 學校的學制List
|
|
|
- //grades: undefined, // 學校的年級List
|
|
|
- //classes: undefined, // 學校的教室List
|
|
|
+ periods: undefined, // 學校的學制List
|
|
|
+ grades: undefined, // 學校的年級List
|
|
|
school_base: undefined, // 区班校基础数据
|
|
|
school_classes: undefined, // 学校班级
|
|
|
school_courses: undefined, // 学校排课
|
|
@@ -152,7 +151,7 @@ export default {
|
|
|
return state.schoolProfile.grades
|
|
|
},
|
|
|
getClasses: state => {
|
|
|
- return state.schoolProfile.classes
|
|
|
+ return state.schoolProfile.school_classes
|
|
|
}
|
|
|
},
|
|
|
mutations: {
|
|
@@ -194,15 +193,12 @@ 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.school_base = data.school_base // 区班校基础数据
|
|
|
- state.schoolProfile.school_classes = data.school_classes // 学校班级
|
|
|
state.schoolProfile.school_courses = data.school_courses // 学校排课
|
|
|
state.schoolProfile.school_syllabus = data.school_syllabus // 校本课纲
|
|
|
+ state.schoolProfile.school_classes = data.school_classes // 学校班级
|
|
|
+ state.schoolProfile.periods = data.fmtPeriods // 學制
|
|
|
+ state.schoolProfile.grades = data.fmtGrades // 年級
|
|
|
+ state.schoolProfile.school_base = data.school_base // 区班校基础数据
|
|
|
},
|
|
|
setStudentProfile(state, data) {
|
|
|
state.studentProfile.blob_uri = data.blob_uri // 學生在學校的Blob網址
|
|
@@ -529,19 +525,73 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
setSchoolProfile(context, data) {
|
|
|
- console.log('11111111111111111111111')
|
|
|
- console.log(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 => {
|
|
|
+ // 沒有錯誤的話
|
|
|
+ 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) {
|
|
@@ -560,27 +610,6 @@ export default {
|
|
|
localStorage.setItem('login_schooCode', data)
|
|
|
context.commit('setSchoolCode', data)
|
|
|
},
|
|
|
- updSchoolProfileBasicInfo(context){
|
|
|
- let login_schooCode = localStorage.getItem('login_schooCode')
|
|
|
- if(login_schooCode){
|
|
|
- apiTools.schoolSetting.findSchoolBase(
|
|
|
- login_schooCode
|
|
|
- ).then( res => {
|
|
|
- let school_profile = localStorage.getItem('school_profile')
|
|
|
- if(school_profile){
|
|
|
- let obj_school_profile = JSON.parse(decodeURIComponent(school_profile,"utf-8"))
|
|
|
-
|
|
|
- obj_school_profile.periods = res.periods
|
|
|
- obj_school_profile.grades = res.grades
|
|
|
- obj_school_profile.classes = res.classes
|
|
|
-
|
|
|
- localStorage.setItem('school_profile', encodeURIComponent(JSON.stringify(obj_school_profile),"utf-8"))
|
|
|
- context.commit('setSchoolProfile', obj_school_profile)
|
|
|
- }
|
|
|
- }
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
getGradeById(context, gradeId) {
|
|
|
return new Promise((resolve) => {
|
|
|
if (typeof context.state.schoolProfile !== 'undefined' && context.state.schoolProfile !== undefined) {
|