|
@@ -6,7 +6,8 @@
|
|
</Badge>
|
|
</Badge>
|
|
<div slot="title" style="display: flex;justify-content: space-between;align-items: center;">
|
|
<div slot="title" style="display: flex;justify-content: space-between;align-items: center;">
|
|
<span>{{ $t('utils.newNotice') }}</span>
|
|
<span>{{ $t('utils.newNotice') }}</span>
|
|
- <span style="font-size: 12px;cursor: pointer;" v-if="msgArr.length" @click="clearAllMsgs">{{ $t('utils.clearAllMsgs') }}</span>
|
|
|
|
|
|
+ <span style="font-size: 12px;cursor: pointer;" v-if="msgArr.length"
|
|
|
|
+ @click="clearAllMsgs">{{ $t('utils.clearAllMsgs') }}</span>
|
|
</div>
|
|
</div>
|
|
<div slot="content" class="notice-wrap">
|
|
<div slot="content" class="notice-wrap">
|
|
<div v-if="!msgArr.length" class="notice-empty">
|
|
<div v-if="!msgArr.length" class="notice-empty">
|
|
@@ -45,20 +46,28 @@
|
|
'coedit_syllabus': vm.$t('notice.type4'), // 邀请课纲共编的通知
|
|
'coedit_syllabus': vm.$t('notice.type4'), // 邀请课纲共编的通知
|
|
'share_syllabus': vm.$t('notice.type4'), // 个人课纲分享的通知
|
|
'share_syllabus': vm.$t('notice.type4'), // 个人课纲分享的通知
|
|
'transfer-admin_school': vm.$t('notice.type5'), // 管理员转移的通知
|
|
'transfer-admin_school': vm.$t('notice.type5'), // 管理员转移的通知
|
|
- 'scoring-arb_school':vm.$t('notice.type6'), // 仲裁卷阅卷任务分配通知
|
|
|
|
- 'scoring-err_school':vm.$t('notice.type6'), // 异常卷阅卷任务分配通知
|
|
|
|
- 'scoring-mark_school':vm.$t('notice.type6'), // 普通阅卷任务分配通知
|
|
|
|
|
|
+ 'scoring-arb_school': vm.$t('notice.type6'), // 仲裁卷阅卷任务分配通知
|
|
|
|
+ 'scoring-err_school': vm.$t('notice.type6'), // 异常卷阅卷任务分配通知
|
|
|
|
+ 'scoring-mark_school': vm.$t('notice.type6'), // 普通阅卷任务分配通知
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
/* 清空所有消息 */
|
|
/* 清空所有消息 */
|
|
- clearAllMsgs(){
|
|
|
|
|
|
+ clearAllMsgs() {
|
|
this.$Modal.confirm({
|
|
this.$Modal.confirm({
|
|
title: this.$t('settings.modalTip4'),
|
|
title: this.$t('settings.modalTip4'),
|
|
content: this.$t('utils.clearAllTip'),
|
|
content: this.$t('utils.clearAllTip'),
|
|
onOk: () => {
|
|
onOk: () => {
|
|
- this.msgArr = []
|
|
|
|
|
|
+ if(this.msgArr.length < 2){
|
|
|
|
+ this.msgArr = []
|
|
|
|
+ }else{
|
|
|
|
+ let groups = this._.groupBy(this.msgArr, 'from')
|
|
|
|
+ Object.keys(groups).forEach(from => {
|
|
|
|
+ this.delMsgs(from,groups[from].map(i => i.indexNum))
|
|
|
|
+ })
|
|
|
|
+ this.msgArr = []
|
|
|
|
+ }
|
|
localStorage.removeItem('msgs')
|
|
localStorage.removeItem('msgs')
|
|
}
|
|
}
|
|
})
|
|
})
|
|
@@ -69,7 +78,6 @@
|
|
},
|
|
},
|
|
/* 获取消息通知时间 */
|
|
/* 获取消息通知时间 */
|
|
getMsgTime(msg) {
|
|
getMsgTime(msg) {
|
|
- console.log(msg);
|
|
|
|
return this.$tools.getDateDiff(msg.body.time)
|
|
return this.$tools.getDateDiff(msg.body.time)
|
|
},
|
|
},
|
|
/* 获取消息通知内容 */
|
|
/* 获取消息通知内容 */
|
|
@@ -109,7 +117,7 @@
|
|
break;
|
|
break;
|
|
case 'scoring-mark_school':
|
|
case 'scoring-mark_school':
|
|
return `${body.schoolname}-${body.tmdname} ${this.$t('notice.tip10')}【${body.examname}】 `
|
|
return `${body.schoolname}-${body.tmdname} ${this.$t('notice.tip10')}【${body.examname}】 `
|
|
- break;
|
|
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -118,27 +126,42 @@
|
|
doClickMsg(msg, index) {
|
|
doClickMsg(msg, index) {
|
|
let body = msg.body
|
|
let body = msg.body
|
|
let routerInfo = null
|
|
let routerInfo = null
|
|
|
|
+ console.log(msg);
|
|
switch (msg.label) {
|
|
switch (msg.label) {
|
|
case 'request_school':
|
|
case 'request_school':
|
|
- routerInfo = { name: "teachermgmt" }
|
|
|
|
|
|
+ routerInfo = {
|
|
|
|
+ name: "teachermgmt"
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 'invite-join_school':
|
|
case 'invite-join_school':
|
|
- routerInfo = { name: "teachermgmt" }
|
|
|
|
|
|
+ routerInfo = {
|
|
|
|
+ name: "teachermgmt"
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 'invite_school':
|
|
case 'invite_school':
|
|
- routerInfo = { name: "settings" }
|
|
|
|
|
|
+ routerInfo = {
|
|
|
|
+ name: "settings"
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 'coedit_syllabus':
|
|
case 'coedit_syllabus':
|
|
- routerInfo = { name: "syllabus" }
|
|
|
|
|
|
+ routerInfo = {
|
|
|
|
+ name: "syllabus"
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 'scoring-arb_school':
|
|
case 'scoring-arb_school':
|
|
- routerInfo = { name: "taskList" }
|
|
|
|
|
|
+ routerInfo = {
|
|
|
|
+ name: "taskList"
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 'scoring-err_school':
|
|
case 'scoring-err_school':
|
|
- routerInfo = { name: "taskList" }
|
|
|
|
|
|
+ routerInfo = {
|
|
|
|
+ name: "taskList"
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 'scoring-mark_school':
|
|
case 'scoring-mark_school':
|
|
- routerInfo = { name: "taskList" }
|
|
|
|
|
|
+ routerInfo = {
|
|
|
|
+ name: "taskList"
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 'share_syllabus':
|
|
case 'share_syllabus':
|
|
routerInfo = {
|
|
routerInfo = {
|
|
@@ -149,22 +172,26 @@
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- this.changeSchool(body.schoolcode,routerInfo)
|
|
|
|
|
|
+ this.changeSchool(body.schoolcode, routerInfo)
|
|
this.msgArr.splice(index, 1)
|
|
this.msgArr.splice(index, 1)
|
|
- localStorage.setItem('msgs',JSON.stringify(this.msgArr))
|
|
|
|
|
|
+ // localStorage.setItem('msgs',JSON.stringify(this.msgArr))
|
|
|
|
+ this.delMsgs(msg.from, [msg.indexNum])
|
|
},
|
|
},
|
|
/* 点击通知判断是否切换学校 */
|
|
/* 点击通知判断是否切换学校 */
|
|
- changeSchool(schoolCode,routerInfo) {
|
|
|
|
- return new Promise((r,j) => {
|
|
|
|
- if(!routerInfo) return
|
|
|
|
|
|
+ changeSchool(schoolCode, routerInfo) {
|
|
|
|
+ return new Promise((r, j) => {
|
|
|
|
+ if (!routerInfo) return
|
|
// 如果是同一学校则不做处理
|
|
// 如果是同一学校则不做处理
|
|
- if (schoolCode === this.$store.state.userInfo.schoolCode || !schoolCode || routerInfo.name === 'settings') {
|
|
|
|
|
|
+ if (schoolCode === this.$store.state.userInfo.schoolCode || !schoolCode || routerInfo.name ===
|
|
|
|
+ 'settings') {
|
|
this.$router.push(routerInfo)
|
|
this.$router.push(routerInfo)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
// 需要切换学校
|
|
// 需要切换学校
|
|
- let user = this.$store.state.user.userProfile || JSON.parse(decodeURIComponent(localStorage.user_profile, "utf-8"));
|
|
|
|
- let joinSchools = user.schools && user.schools.length ? user.schools.filter(i => i.status === 'join') : null
|
|
|
|
|
|
+ let user = this.$store.state.user.userProfile || JSON.parse(decodeURIComponent(localStorage
|
|
|
|
+ .user_profile, "utf-8"));
|
|
|
|
+ let joinSchools = user.schools && user.schools.length ? user.schools.filter(i => i.status ===
|
|
|
|
+ 'join') : null
|
|
if (joinSchools && joinSchools.length) {
|
|
if (joinSchools && joinSchools.length) {
|
|
joinSchools.forEach(i => {
|
|
joinSchools.forEach(i => {
|
|
if (!i.area) {
|
|
if (!i.area) {
|
|
@@ -174,7 +201,7 @@
|
|
}
|
|
}
|
|
})
|
|
})
|
|
let areaName = joinSchools.find(i => i.schoolId === schoolCode).area.name
|
|
let areaName = joinSchools.find(i => i.schoolId === schoolCode).area.name
|
|
- if(areaName !== sessionStorage.getItem('areaName')){
|
|
|
|
|
|
+ if (areaName !== sessionStorage.getItem('areaName')) {
|
|
this.$Modal.confirm({
|
|
this.$Modal.confirm({
|
|
title: this.$t('settings.modalTip4'),
|
|
title: this.$t('settings.modalTip4'),
|
|
content: this.$t('settings.modalTip9'),
|
|
content: this.$t('settings.modalTip9'),
|
|
@@ -182,7 +209,7 @@
|
|
this.$EventBus.$emit('resetAreaIndex', {
|
|
this.$EventBus.$emit('resetAreaIndex', {
|
|
areaName: areaName,
|
|
areaName: areaName,
|
|
schoolCode: schoolCode,
|
|
schoolCode: schoolCode,
|
|
- routerInfo:routerInfo
|
|
|
|
|
|
+ routerInfo: routerInfo
|
|
})
|
|
})
|
|
r(200)
|
|
r(200)
|
|
},
|
|
},
|
|
@@ -190,27 +217,42 @@
|
|
r(500)
|
|
r(500)
|
|
}
|
|
}
|
|
})
|
|
})
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
this.$EventBus.$emit('resetAreaIndex', {
|
|
this.$EventBus.$emit('resetAreaIndex', {
|
|
areaName: areaName,
|
|
areaName: areaName,
|
|
schoolCode: schoolCode,
|
|
schoolCode: schoolCode,
|
|
- routerInfo:routerInfo
|
|
|
|
|
|
+ routerInfo: routerInfo
|
|
})
|
|
})
|
|
r(200)
|
|
r(200)
|
|
}
|
|
}
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
r(500)
|
|
r(500)
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+ },
|
|
|
|
+ /* API删除通知 */
|
|
|
|
+ async delMsgs(from, idArr) {
|
|
|
|
+ try {
|
|
|
|
+ let srvAdr = this.$store.state.config.srvAdr
|
|
|
|
+ let host = srvAdr == 'Global' ? this.$store.state.config.Global.coreAPIUrl : this.$store.state.config.China.coreAPIUrl
|
|
|
|
+ await this.$api.service.delNotification(host,{
|
|
|
|
+ "from": from,
|
|
|
|
+ "receiver": this.$store.state.userInfo.TEAMModelId,
|
|
|
|
+ "indexNums": idArr
|
|
|
|
+ })
|
|
|
|
+ } catch (e) {
|
|
|
|
+ this.$Message.error('remove fail')
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
},
|
|
},
|
|
watch: {
|
|
watch: {
|
|
msgs: {
|
|
msgs: {
|
|
handler(n, o) {
|
|
handler(n, o) {
|
|
let localMsgs = JSON.parse(localStorage.getItem('msgs'))
|
|
let localMsgs = JSON.parse(localStorage.getItem('msgs'))
|
|
- if(!localMsgs || !localMsgs.length){
|
|
|
|
|
|
+ if (!localMsgs || !localMsgs.length) {
|
|
this.msgArr = []
|
|
this.msgArr = []
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
// 只查询当前站点的消息通知
|
|
// 只查询当前站点的消息通知
|
|
let curLocation = localStorage.getItem('location')
|
|
let curLocation = localStorage.getItem('location')
|
|
this.msgArr = localMsgs.filter(i => {
|
|
this.msgArr = localMsgs.filter(i => {
|