From dbcc7bbb9b7bc3353ce082e659da25ef359aeaf0 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Wed, 19 Feb 2020 17:19:17 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=9C=AA=E5=88=86=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/members/CourseGroupList.js | 11 +++-- .../courses/members/CourseGroupListTable.js | 33 +++++++------- .../modules/courses/members/studentsList.css | 43 +++++++++++++++++++ .../modules/courses/members/studentsList.js | 22 +++++++--- 4 files changed, 85 insertions(+), 24 deletions(-) diff --git a/public/react/src/modules/courses/members/CourseGroupList.js b/public/react/src/modules/courses/members/CourseGroupList.js index afec12fa9..597357a9f 100644 --- a/public/react/src/modules/courses/members/CourseGroupList.js +++ b/public/react/src/modules/courses/members/CourseGroupList.js @@ -133,7 +133,12 @@ function CourseGroupList(props) { modalsType={DownloadType} /> +
  • 分班列表
  • +
  • {props.history.push(`/courses/${courseId}/course_groups/0`)}}>未分班
  • + + } searchValue={ searchValue } onInputSearchChange={onInputSearchChange} allowClearonChange={onInputSearchChange} @@ -211,12 +216,12 @@ function CourseGroupList(props) { onPressEnter={onPressEnter} >
    - {!!none_group_member_count &&
    {props.history.push(`/courses/${courseId}/course_groups/0`)}}> + {/* {!!none_group_member_count &&
    {props.history.push(`/courses/${courseId}/course_groups/0`)}}> 未分班: {none_group_member_count}个学生 查看 -
    } +
    } */} {course_groups && !!course_groups.length ? diff --git a/public/react/src/modules/courses/members/CourseGroupListTable.js b/public/react/src/modules/courses/members/CourseGroupListTable.js index 5551faee3..2b02afcd7 100644 --- a/public/react/src/modules/courses/members/CourseGroupListTable.js +++ b/public/react/src/modules/courses/members/CourseGroupListTable.js @@ -5,7 +5,7 @@ import axios from 'axios' import { WordsBtn, trigger, on, off, getUrl, downloadFile , sortDirections } from 'educoder' import ClipboardJS from 'clipboard' - +import './studentsList.css'; /** 角色数组, CREATOR: 创建者, PROFESSOR: 教师, ASSISTANT_PROFESSOR: 助教, STUDENT: 学生 course_members_count: 0 @@ -103,10 +103,23 @@ function CourseGroupListTable(props) { dataIndex: 'invite_code', key: 'invite_code', align:'center', - width:"10%", + width:"21%", className:"color-grey-6", render: (invite_code, record, index) => { - return invite_code + return + {invite_code} + {isAdmin && + +
    成员可以通过邀请码主动加入分班
    +
    点击复制邀请码
    + + }> + 复制 +
    + } +
    } } : { title: '你当前所在分班', @@ -127,22 +140,12 @@ function CourseGroupListTable(props) { dataIndex: 'setting', key: 'setting', align:'center', - width:"25%", + width:"14%", className:"color-grey-6", render: (none, record, index) => { return {!isCourseEnd && isAdmin && onDelete(record)} style={'grey'}>删除分班} - {isAdmin && - -
    成员可以通过邀请码主动加入分班
    -
    点击复制邀请码
    - - }> - 复制邀请码 -
    - } + {isStudent && addToDir(record)} style={''}>加入分班} onGoDetail(record)} style={''}>查看
    diff --git a/public/react/src/modules/courses/members/studentsList.css b/public/react/src/modules/courses/members/studentsList.css index b2a41c7e6..bd7b88ed1 100644 --- a/public/react/src/modules/courses/members/studentsList.css +++ b/public/react/src/modules/courses/members/studentsList.css @@ -5,4 +5,47 @@ .E9F8FF{ background-color: #E9F8FF; +} + +.codeBtnStyle{ + height: 18px; + line-height: 18px; + padding:0px 5px; + cursor: pointer; + font-size: 12px; + border-radius: 2px; +} +.codeBtn_yellow{ + border:1px solid #FF6B06; + color: #FF6B06!important; +} +.codeBtn_green{ + border:1px solid #00BA38; + color: #00BA38!important; +} + +.codeBtn_blue{ + border:1px solid #4CACFF; + color: #4CACFF!important; +} + +.course_publicNav{ + display: flex; +} +.course_publicNav li{ + position: relative; + margin-right: 30px; + cursor: pointer; +} +.course_publicNav li.active{ + color: #4CACFF +} +.course_publicNav li.active::after{ + position: absolute; + width: 100%; + height: 2px; + content: ''; + left: 0px; + bottom: -33px; + background: #4CACFF; } \ No newline at end of file diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js index aff19d041..af83d0a49 100644 --- a/public/react/src/modules/courses/members/studentsList.js +++ b/public/react/src/modules/courses/members/studentsList.js @@ -741,12 +741,22 @@ class studentsList extends Component{ - - - { this.props.history.push(`/courses/${courseId}/course_groups`)}} - style={{color: '#212121', verticalAlign: 'initial', marginRight: '14px' }} - > - {course_group_name || '未分班'} + { + course_group_name ? + + + { this.props.history.push(`/courses/${courseId}/course_groups`)}} + style={{color: '#212121', verticalAlign: 'initial', marginRight: '14px' }} + > + {course_group_name} + + : + + } + {isAdmin && invite_code && 邀请码: From bf2d7bc60a3cb5b4ad5b16007bdfd4725c2a4e30 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Wed, 19 Feb 2020 18:08:29 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=81=9C=E7=94=A8=E3=80=81=E5=90=AF?= =?UTF-8?q?=E7=94=A8=E9=82=80=E8=AF=B7=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/members/CourseGroupListTable.js | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/members/CourseGroupListTable.js b/public/react/src/modules/courses/members/CourseGroupListTable.js index 2b02afcd7..42e64adeb 100644 --- a/public/react/src/modules/courses/members/CourseGroupListTable.js +++ b/public/react/src/modules/courses/members/CourseGroupListTable.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react' -import { Input,Checkbox,Table, Pagination, Modal,Menu ,Spin, Tooltip , Badge, Popconfirm } from "antd"; +import { Input,Checkbox,Table, Pagination, Modal,Menu ,Spin, Tooltip , Badge, Popconfirm, Result } from "antd"; import axios from 'axios' import { WordsBtn, trigger, on, off, getUrl, downloadFile , sortDirections } from 'educoder' @@ -108,6 +108,13 @@ function CourseGroupListTable(props) { render: (invite_code, record, index) => { return {invite_code} + { + record.edit_auth ? + changeInviteCode(record.id,record.invite_code_halt)} className={record.invite_code_halt ?"codeBtnStyle codeBtn_green ml10":"codeBtnStyle codeBtn_blue ml10"}> + {record.invite_code_halt ?"启用":"停用"} + + :"" + } {isAdmin && @@ -212,6 +219,18 @@ function CourseGroupListTable(props) { function onGoDetail(record) { props.history.push(`/courses/${courseId}/course_groups/${record.id}`) } + // 停用和启用邀请码 + function changeInviteCode(id,flag){ + const url= `/course_groups/${id}/set_invite_code_halt.json`; + axios.post(url).then(result=>{ + if(result){ + props.showNotification(`邀请码${flag?"启用":"停用"}成功!`); + props.onOperationSuccess && props.onOperationSuccess(); + } + }).catch(error=>{ + console.log(error); + }) + } const isAdmin = props.isAdmin(); const isSuperAdmin = props.isSuperAdmin(); const isStudent = props.isStudent() From f16334aa4687ec0009ae22a1c1c1a9f4d0461727 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Thu, 20 Feb 2020 13:54:53 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=82=80=E8=AF=B7=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/courses/members/CourseGroupListTable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/members/CourseGroupListTable.js b/public/react/src/modules/courses/members/CourseGroupListTable.js index 42e64adeb..e146d3432 100644 --- a/public/react/src/modules/courses/members/CourseGroupListTable.js +++ b/public/react/src/modules/courses/members/CourseGroupListTable.js @@ -115,7 +115,7 @@ function CourseGroupListTable(props) { :"" } - {isAdmin && + {isAdmin && !record.invite_code_halt &&
    成员可以通过邀请码主动加入分班
    From c5dbfcc67644bc9a69b8e9702ffe08150f834fc8 Mon Sep 17 00:00:00 2001 From: caicai8 <1149225589@qq.com> Date: Thu, 20 Feb 2020 14:18:49 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=BC=B9=E6=A1=86=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/coursesDetail/CoursesBanner.js | 2 +- .../courses/members/CourseGroupListTable.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js index c8715e1b8..99d5f7606 100644 --- a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js +++ b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js @@ -246,7 +246,7 @@ class CoursesBanner extends Component { }) }else{ - s = "邀请码停用后,用户不能主动加入该课堂了"; + s = "课堂邀请码停用后,用户不能主动加入该课堂了"; ss = "您是否确认停用?"; this.showActionPoll(i,s,ss) } diff --git a/public/react/src/modules/courses/members/CourseGroupListTable.js b/public/react/src/modules/courses/members/CourseGroupListTable.js index e146d3432..d0ccbd73a 100644 --- a/public/react/src/modules/courses/members/CourseGroupListTable.js +++ b/public/react/src/modules/courses/members/CourseGroupListTable.js @@ -221,6 +221,20 @@ function CourseGroupListTable(props) { } // 停用和启用邀请码 function changeInviteCode(id,flag){ + if(flag){ + changeInviteCodeFunc(id,flag); + }else{ + props.confirm({ + content:"分班邀请码停用后,用户不能主动加入该分班了", + subContent:'您是否确认停用?', + onOk:() => { + changeInviteCodeFunc(id,flag) + } + }) + } + } + + function changeInviteCodeFunc(id,flag){ const url= `/course_groups/${id}/set_invite_code_halt.json`; axios.post(url).then(result=>{ if(result){