fix: show evidence for teacher

This commit is contained in:
lbaf23 2021-08-04 15:20:29 +08:00
parent a2558ea396
commit 8c29ac1a79
7 changed files with 38 additions and 79 deletions

View File

@ -9,6 +9,7 @@ type ChaptersResponse struct {
Code int `json:"code"`
Msg string `json:"msg"`
Chapters []models.Outline `json:"chapters"`
ShowMinute bool `json:"showMinute"`
}
// GetProjectChapters
@ -29,8 +30,16 @@ func (p *ProjectController) GetProjectChapters() {
return
}
uid := ""
show := false
if user.Tag == "student" {
uid = user.Username
show = true
}
if user.Tag == "teacher" {
uid = p.GetString("studentId")
if uid != "" {
show = true
}
}
pid := p.GetString(":id")
outline, err := models.GetChaptersByPid(pid, uid)
@ -44,6 +53,7 @@ func (p *ProjectController) GetProjectChapters() {
p.Data["json"] = ChaptersResponse{
Code: 200,
Chapters: outline,
ShowMinute: show,
}
}
p.ServeJSON()

View File

@ -2,10 +2,11 @@ import request from "./request";
import qs from "qs";
const ChapterApi = {
getProjectChapters(id) {
getProjectChapters(id, studentId) {
return request({
url: `/project/${id}/chapters`,
method: 'get',
params: {studentId: studentId}
})
},
createProjectChapter(chapter) {

View File

@ -1,5 +1,5 @@
import React, {useEffect, useState} from "react";
import {Col, Collapse, Divider, List, Progress, Row, Table} from "antd";
import {Collapse, Divider, List, Progress} from "antd";
import TaskApi from "../../../../api/TaskApi";
import ChapterApi from "../../../../api/ChapterApi";
@ -8,23 +8,25 @@ import util from "../../component/Util"
function StudentEvidence(obj) {
const pid = obj.project === undefined ? obj.pid : obj.project.id
const studentId = obj.studentId
const studentId = obj.studentId === undefined ? "" : obj.studentId
const [tasks, setTasks] = useState([])
const [learning, setLearning] = useState(false)
const [editable, setEditable] = useState(false)
const [chapters, setChapters] = useState([])
const [showMinute, setShowMinute] = useState(false)
useEffect(() => {
getChapters()
getTasks()
}, []);
const getChapters = () => {
ChapterApi.getProjectChapters(pid)
ChapterApi.getProjectChapters(pid, studentId)
.then((res) => {
if (res.data.chapters === null) {
setChapters([])
} else {
setChapters(res.data.chapters)
setShowMinute(res.data.showMinute)
}
})
.catch(e => {
@ -71,55 +73,6 @@ function StudentEvidence(obj) {
console.log(e)
})
}
const getColumns = () => {
let c = [
{
title: '任务标题',
dataIndex: 'taskTitle',
key: 'taskTitle'
},
{
title: '任务描述',
dataIndex: 'taskIntroduce',
key: 'taskIntroduce',
ellipsis: true,
},
{
title: '权重',
dataIndex: 'taskWeight',
key: 'taskWeight',
render: (text, item, index) => (
<span>{text}&nbsp;&nbsp;%</span>
)
}]
if (learning) {
c.push({
title: '得分',
dataIndex: 'score',
key: 'score',
render: (text, item, index) => (
<>
<span>{getScore(text, item.taskWeight)}&nbsp;/&nbsp;{item.taskWeight}</span>
</>
)
})
c.push({
title: '状态',
dataIndex: 'score',
key: 'score',
render: (text, item, index) => (
<>
{item.scored ?
<span style={{color: 'green'}}>已打分</span>
:
<span>未打分</span>
}
</>
)
})
}
return c
}
const getScore = (score, weight) => {
return (score * weight / 100).toFixed(2)
}
@ -148,7 +101,7 @@ function StudentEvidence(obj) {
item => (
<List.Item>
{util.FormatSectionName(item.sectionName, item.chapterNumber, item.sectionNumber)}
{learning ?
{showMinute ?
<>
<span style={{float: 'right'}}>
<Progress
@ -221,12 +174,6 @@ function StudentEvidence(obj) {
</Collapse.Panel>
))}
</Collapse>
{/* <Table
columns={getColumns()}
dataSource={tasks}
pagination={false}
/>*/}
</div>
)
}

View File

@ -1,7 +1,7 @@
import React, {useEffect} from "react";
import {Card, PageHeader} from "antd";
import DocumentTitle from 'react-document-title';
import StudentEvidence from "../ProjectInfo/component/StudentEvidence";
import StudentEvidence from "./component/StudentEvidence";
function Evidence(obj) {
const pid = obj.match.params.pid
@ -11,7 +11,7 @@ function Evidence(obj) {
}, [])
const back = e => {
window.location.href = `/project/${pid}/info`
window.location.href = `/project/${pid}/info?menu=student-admin`
}
return (

View File

@ -15,8 +15,10 @@ function StudentAdmin(obj) {
const [page, setPage] = useState(1)
useEffect(() => {
if (pid !== undefined) {
updateStudentList()
}, []);
}
}, [pid]);
const updateStudentList = () => {
ProjectApi.getProjectStudents(pid)

View File

@ -15,7 +15,7 @@ import StudentAdmin from "./component/StudentAdmin";
import {getUser} from "../../User/Auth/Auth";
import {DeleteOutlined} from "@ant-design/icons";
import util from "../component/Util"
import StudentEvidence from "./component/StudentEvidence";
import StudentEvidence from "../Evidence/component/StudentEvidence";
class ProjectInfo extends React.PureComponent {
constructor(props) {
@ -86,7 +86,6 @@ class ProjectInfo extends React.PureComponent {
});
}
back = e => {
console.log('back')
window.location.href = '/my-project'
}
learnProject = e => {

View File

@ -45,18 +45,18 @@ func init() {
beego.GlobalControllerRouter["OpenPBL/controllers:ProjectController"] = append(beego.GlobalControllerRouter["OpenPBL/controllers:ProjectController"],
beego.ControllerComments{
Method: "GetProjectDetail",
Method: "UpdateProject",
Router: "/:id",
AllowHTTPMethods: []string{"get"},
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["OpenPBL/controllers:ProjectController"] = append(beego.GlobalControllerRouter["OpenPBL/controllers:ProjectController"],
beego.ControllerComments{
Method: "UpdateProject",
Method: "GetProjectDetail",
Router: "/:id",
AllowHTTPMethods: []string{"post"},
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
@ -279,18 +279,18 @@ func init() {
beego.GlobalControllerRouter["OpenPBL/controllers:ProjectController"] = append(beego.GlobalControllerRouter["OpenPBL/controllers:ProjectController"],
beego.ControllerComments{
Method: "CreateSurvey",
Method: "GetSurveyDetailByTaskId",
Router: "/:projectId/task/:taskId/survey",
AllowHTTPMethods: []string{"post"},
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["OpenPBL/controllers:ProjectController"] = append(beego.GlobalControllerRouter["OpenPBL/controllers:ProjectController"],
beego.ControllerComments{
Method: "GetSurveyDetailByTaskId",
Method: "CreateSurvey",
Router: "/:projectId/task/:taskId/survey",
AllowHTTPMethods: []string{"get"},
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})