You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
educoder/public/react/src/modules/message/js/MessagSub.js

547 lines
20 KiB

import React, { Component } from 'react';
import {
Spin,
Pagination,
} from "antd";
import axios from 'axios';
import {getImageUrl} from 'educoder';
import "../css/messagemy.css"
//消息页面
class MessagSub extends Component{
constructor(props) {
super(props);
this.state={
page:1,
limit:10,
typeysl:"",
count:0,
isSpin:false,
data:undefined,
}
}
// 初始化数据
componentDidMount(){
// console.log("初始化数据了MessagSub");
// console.log(this.props);
this.getdata("",this.state.page);
// this.Messageprivatemessageunreadmessage();
try {
this.props.Mtab(1);
}catch (e) {
}
this.props.triggerRef(this)
}
//塞选页数
paginationonChanges=(pageNumber)=>{
this.setState({
page: pageNumber,
})
this.getdata(this.state.typeysl,pageNumber);
}
//获取数据源
getdata=(types,page)=>{
this.setState({
isSpin:true,
})
let{limit}=this.state;
let url = `/users/tidings.json`;
axios.get((url),{params:{
type:types,
page:page,
per_page:limit,
}}).then((result) => {
if (result) {
// if (result.data.status === 0) {
this.setState({
page: page,
count: result.data.count,
typeysl: types,
isSpin: false,
data: result.data.tidings === null ? undefined : result.data.tidings === undefined ? undefined : result.data.tidings === [] ? undefined : result.data.tidings === "[]" ? undefined : result.data.tidings.length === 0 ? undefined : result.data.tidings,
})
// }
}
}).catch((error) => {
console.log(error);
this.setState({
isSpin:false,
})
})
};
getdatas=()=>{
this.setState({
isSpin:true,
})
let{typeysl,page,limit}=this.state;
let url = `/users/tidings.json`;
axios.get((url),{params:{
type:typeysl,
page:page,
per_page:limit,
}}).then((result) => {
if (result) {
// if (result.data.status === 0) {
this.setState({
page: page,
count: result.data.count,
typeysl: typeysl,
isSpin: false,
data: result.data.tidings === null ? undefined : result.data.tidings === undefined ? undefined : result.data.tidings === [] ? undefined : result.data.tidings === "[]" ? undefined : result.data.tidings.length === 0 ? undefined : result.data.tidings,
})
// }
}
}).catch((error) => {
console.log(error);
this.setState({
isSpin:false,
})
})
}
componentWillUnmount(){
// 卸载异步操作设置状态
this.setState = (state, callback) => {
return;
}
}
gettourl=(item)=>{
switch (item.container_type) {
case "ApplyUserAuthentication" :
if(item.tiding_type==="Apply"){
if(item.auth_type===1){
//系统管理页面
return window.location.href="/managements/identity_authentication";
}
if(item.auth_type===2){
//系统管理页面
return window.location.href="/managements/professional_authentication";
}
}
if(item.tiding_type ==="System"){
// 账号管理页-认证信息
return window.location.href="/account/certification";
}
case "CancelUserAuthentication" :
// 账号管理页-认证信息
return window.location.href="/account/certification";
case "CancelUserProCertification" :
// 账号管理页-认证信息
return window.location.href="/account/certification";
case "ApplyAddDepartment" :
if(item.tiding_type==="Apply"){
//部门审批
return window.location.href="/managements/depart";
}
if(item.tiding_type==="System"){
// 账号管理页/account/profile
return window.location.href="/account/profile";
}
case "ApplyAddSchools" :
if(item.tiding_type==="Apply"){
// 单位审批
return window.location.href=" /managements/unit";
}
if(item.tiding_type==="System"){
// 账号管理页
return window.location.href="/account/profile";
}
case "ApplyAction" :
switch (item.parent_container_type) {
case "ApplyShixun" :
if(item.tiding_type==="Apply"){
return window.location.href="/managements/shixun_authorization";
}
if(item.tiding_type==="System"){
// 实训详情页 :identifier = identifier
return window.location.href=`/shixuns/${item.identifier}/challenges`;
}
case "ApplySubject" :
if(item.tiding_type==="Apply"){
// 实训课程发布
return window.location.href="/managements/subject_authorization";
}
if(item.tiding_type==="System"){
// 实践课程详情页 :identifier = identifier
return window.location.href=`/paths/${item.identifier}`;
}
case "TrialAuthorization" :
if(item.tiding_type==="Apply"){
// 试用授权页面
return window.location.href="/managements/trial_authorization";
}
if(item.tiding_type==="System"){
// 账号管理页
return window.location.href="/account/profile";
}
}
case 'JoinCourse' :
// 课堂详情页 :id =
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.container_id}`;
case 'StudentJoinCourse':
// 课堂详情页 :id = container_id
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.container_id}`;
case 'DealCourse':
// 课堂详情页 :id = container_id
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.container_id}`;
case 'TeacherJoinCourse':
// 课堂详情页 :id = container_id
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.container_id}`;
case 'Course' :
// 课堂详情页 :id = container_id
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.container_id}`;
case 'ArchiveCourse' :
// 课堂详情页 :id = container_id
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.container_id}`;
case "Shixun" :
return window.location.href=`/shixuns/${item.identifier}/challenges`;
case "Subject" :
// 实践课程详情页 :id = container_id
return window.location.href=`/paths/${item.identifier}`;
case "JournalsForMessage" :
switch (item.parent_container_type) {
case "Principal" :
// 反馈页 :id = parent_container_id
// 不用跳了
return '';
case "HomeworkCommon" :
//学生作业页 homework = parent_container_id
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
return '';
case "GraduationTopic" :
// 毕业目标页 parent_container_id
return window.location.href=`/courses/${item.belong_container_id}/graduation_topics/${item.parent_container_id}/detail`;
case "StudentWorksScore" :
//学生作业页
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
}
case "Memo" :
// 交流问答页 :id = parent_container_id
return window.location.href="/forums/categories/all?order=newest";
case "Watcher" :
// 用户个人中心页 :id = item.trigger_user.login
return window.location.href=`/users/${item.trigger_user.login}/courses`;
case "PraiseTread" :
// 这块太复杂 不好处理
return '';
case "Grade" :
//个人中心页 :id = item.trigger_user.login
return window.location.href=`/users/${item.trigger_user.login}/courses`;
case "JoinProject" :
//项目详情-申请加入项目审核页 :id = container_id
return window.location.href=`/projects/${item.container_id}`;
case 'ReporterJoinProject':
//项目详情页 :id = container_id
return window.location.href=`/projects/${item.container_id}`;
case 'DealProject':
//项目详情页 :id = container_id
return window.location.href=`/projects/${item.container_id}`;
case 'ManagerJoinProject':
//项目详情页 :id = container_id
return window.location.href=`/projects/${item.container_id}`;
case "Poll":
switch (item.parent_container_type) {
case "CommitPoll" :
// 课堂id belong_container_id
//课堂-学生已提交问卷列表 :id = container_id
return window.location.href=` /courses/${item.belong_container_id}/polls/${item.container_id}`;
default :
// 课堂-问卷列表 :id = container_id
return window.location.href=` /courses/${item.belong_container_id}/polls/${item.container_id}`;
}
case "Exercise" :
switch (item.parent_container_type) {
case "CommitExercise":
// 课堂-学生试卷详情 :id = container_id :user_id = trigger_user.id
return window.location.href=` /courses/${item.belong_container_id}/exercises/${item.container_id}/student_exercise_list?tab=0`;
case "ExerciseScore":
// 课堂-学生试卷详情 :id = container_id :user_id = trigger_user.id
return window.location.href=` /courses/${item.belong_container_id}/exercises/${item.container_id}/student_exercise_list?tab=0`;
default :
// 课堂-试卷列表详情 :id = container_id
return window.location.href=`/courses/${item.belong_container_id}/exercises/${item.container_id}`;
}
case 'StudentGraduationTopic' :
//课堂-毕业选题详情 :id = parent_container_id
return window.location.href=`/courses/${item.belong_container_id}/graduation_topics/${item.parent_container_id}/detail`;
case 'DealStudentTopicSelect' :
//课堂-毕业选题详情 :id = parent_container_id
return window.location.href=`/courses/${item.belong_container_id}/graduation_topics/${item.parent_container_id}/detail`;
case 'GraduationTask' :
//课堂-毕业任务页 :id = container_id
return window.location.href=`/courses/${item.belong_container_id}/graduation_tasks/${item.container_id}`;
case "GraduationWork" :
//课堂-毕业xx页 :id = container_id
return window.location.href=`/courses/${item.belong_container_id}/graduation_tasks/${item.container_id}`;
case "GraduationWorkScore" :
// 课堂-毕业xx页 :id = parent_container_id
return window.location.href=`/courses/${item.belong_container_id}/graduation_tasks/${item.parent_container_id}`;
case "HomeworkCommon" :
switch (item.parent_container_type) {
case "AnonymousCommentFail" :
// 课堂-作业列表 homework = container_id
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
case "HomeworkPublish" :
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
case "AnonymousAppeal" :
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
default :
// 课堂-作业列表 homework = container_id
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
}
case "StudentWork" :
//课堂-作业 :id = container_id
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
case "StudentWorksScore" :
//课堂-作业 :id = parent_container_id
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
case "StudentWorksScoresAppeal" :
if(item.homework_type===1){
//普通作业
return window.location.href=`t/courses/${item.belong_container_id}/common_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===3){
//分组作业
return window.location.href=`/courses/${item.belong_container_id}/group_homeworks/${item.parent_container_id}/list`;
}
if(item.homework_type===4){
//实训作业
return window.location.href=`/courses/${item.belong_container_id}/shixun_homeworks/${item.parent_container_id}/list?tab=0`;
}
case "ChallengeWorkScore" :
return '';
case "SendMessage" :
// /managements/mirror_repository
return window.location.href=`/managements/mirror_repository`;
case "Journal" :
//项目Issue页 :id = parent_container_id
return window.location.href=`/projects/${item.parent_container_id}/issues?remote=true`;
case "Issue" :
//项目Issue页 :id = container_id
return window.location.href=`/projects/${item.container_id}/issues?remote=true`;
case "PullRequest" :
// 项目pull request页 :id = parent_container_id
return window.location.href=`/projects/${item.parent_container_id}/pull_requests`;
case "Department" :
//账号管理页
return window.location.href=`/account/profile`;
case "Library" :
if (item.tiding_type === 'Apply') {
// /managements/library_applies
return window.location.href=`/managements/library_applies`;
}
if(item.tiding_type === 'System'){
//教学案例详情 :id = container_id
return window.location.href=`/moop_cases/${item.container_id}`;
}
case "ProjectPackage" :
if(item.tiding_type==="Destroyed_end"){
return ;
}else {
// if (item.tiding_type === 'Apply') {
// ///managements/project_package_applies
// return window.location.href=`/managements/project_package_applies`;
// }
// if(item.tiding_type === 'System'){
//众包详情 :id = container_id
return window.location.href=`/crowdsourcing/${item.container_id}`;
// }
}
default :
return window.location.href="/";
}
}
render() {
let{page,limit,typeysl,count,isSpin,data}=this.state;
// console.log("6868686868");
// console.log(data);
return (
<div className="clearfix ml20">
{/*头部筛选数据*/}
<ul className="pl10 ridingNav clearfix edu-back-white">
<li className={typeysl===""?"active":""}><a onClick={(s,i)=>this.getdata("",1)}>全部</a></li>
<li className={typeysl&&typeysl==="course"?"active":""} ><a onClick={(s,i)=>this.getdata("course",1)}>课堂提醒</a></li>
<li className={typeysl&&typeysl==="project"?"active":""} ><a onClick={(s,i)=>this.getdata("project",1)}>项目提醒</a></li>
<li className={typeysl&&typeysl==="project_package"?"active":""}><a onClick={(s,i)=>this.getdata("project_package",1)}>众包提醒</a></li>
<li className={typeysl&&typeysl==="interactive"?"active":""}><a onClick={(s,i)=>this.getdata("interactive",1)}>互动提醒</a></li>
<li className={typeysl&&typeysl==="apply"?"active":""}><a onClick={(s,i)=>this.getdata("apply",1)}>审核</a></li>
<li className={typeysl&&typeysl==="system"?"active":""}><a onClick={(s,i)=>this.getdata("system",1)}>通知</a></li>
</ul>
{/*下面内容页面*/}
<div className="bor-top-greyE mycenter">
{/*这里可以进行数据处理*/}
<div className="myw100baifenbi">
<Spin size="large" className="myw100baifenbi" spinning={isSpin}>
{
data===undefined?
<div className="edu-tab-con-box clearfix edu-txt-center">
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/>
<p className="edu-nodata-p mb20">暂无数据哦~</p>
</div>
:data.map((item,key)=>{
console.log(data)
return(
<div className="pl25 ridinglist edu-back-white" key={key}>
<div className="ridinglist-sub clearfix df tiding_item" onClick={()=>this.gettourl(item)}>
<img onMouseDown={()=>this.myCome(item)} src={getImageUrl("images/"+item.trigger_user.image_url)} className="radius mr10 fl myimgw48 myimgh48"/>
<div className="fl flex1">
<p>
<a className="mr20 private_message_a" onMouseDown={()=>this.myCome(item)}>{item.trigger_user.name}</a>
<span className="color-grey-c">{item.time}</span>
{item.tiding_type==="Apply"?(
item.status===0?
<span className="edu-filter-btn ml20 edu-filter-btn-red">待处理</span>:""
):""}
{item.tiding_type==="Apply"?(
item.status===1?
<span className="edu-filter-btn ml20 edu-filter-btn-green">已处理</span>:""
):""}
</p>
<style>
{
`.yslspansk span{
color: #FF9966!important;
}
`
}
</style>
<p className="color-grey-6 break_word_firefox yslspansk" style={{wordBreak: "break-word"}} dangerouslySetInnerHTML={{__html:item.content}}></p>
</div>
<span className={item.new_tiding===true?"new-point fr mr40 mt22":""}></span>
</div>
</div>
)
})}
</Spin>
{/*页数*/}
{ data===undefined?""
:
(count>10?
<div style={{textAlign: "center"}} className="new_expand mt10">
<div className="edu-txt-center mt30">
<Pagination showQuickJumper current={page}
onChange={this.paginationonChanges} pageSize={limit}
total={count}></Pagination>
</div>
</div>:""
)
}
</div>
</div>
</div>
)
}
}
export default MessagSub;