From 1a8d0378aaef0c6d2a0633eba73badb81859bd98 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 11 Oct 2019 15:03:00 +0800 Subject: [PATCH 01/22] no message --- .../src/modules/courses/ListPageIndex.js | 8 +- .../courses/members/CourseGroupList.js | 189 ++++++++++++++++++ 2 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 public/react/src/modules/courses/members/CourseGroupList.js diff --git a/public/react/src/modules/courses/ListPageIndex.js b/public/react/src/modules/courses/ListPageIndex.js index 730a1bdce..8c5652838 100644 --- a/public/react/src/modules/courses/ListPageIndex.js +++ b/public/react/src/modules/courses/ListPageIndex.js @@ -33,6 +33,12 @@ const StudentsList= Loadable({ loader: () => import('./members/studentsList'), loading: Loading, }); +//分班列表 +const CourseGroupList= Loadable({ + loader: () => import('./members/CourseGroupList'), + loading: Loading, +}); + const Eduinforms= Loadable({ loader: () => import('./gradinforms/Eduinforms.js'), loading: Loading, @@ -234,7 +240,7 @@ class ListPageIndex extends Component{ > () + (props) => () } > diff --git a/public/react/src/modules/courses/members/CourseGroupList.js b/public/react/src/modules/courses/members/CourseGroupList.js new file mode 100644 index 000000000..26a1abda3 --- /dev/null +++ b/public/react/src/modules/courses/members/CourseGroupList.js @@ -0,0 +1,189 @@ +// 分班列表 加入分班 + +import React, { useState, useEffect } from 'react' + +import { Input,Checkbox,Table, Pagination, Modal,Menu ,Spin, Tooltip , Divider, Popconfirm } from "antd"; +import ClipboardJS from 'clipboard' +import axios from 'axios' +import _ from 'lodash' + +import '../css/Courses.css' +import '../css/members.css' + +import CourseLayoutcomponent from '../common/CourseLayoutComponent' +import Titlesearchsection from '../common/titleSearch/TitleSearchSection' +import ColorCountText from '../common/titleSearch/ColorCountText' + +import { WordsBtn, trigger, on, off, getUrl, downloadFile , sortDirections } from 'educoder' +import Modals from "../../modals/Modals"; +import NoneData from "../coursesPublic/NoneData" +import DownloadMessageysl from "../../modals/DownloadMessageysl"; +import CreateGroupByImportModal from './modal/CreateGroupByImportModal' +import ChangeRolePop from './ChangeRolePop' +/** + 角色数组, CREATOR: 创建者, PROFESSOR: 教师, ASSISTANT_PROFESSOR: 助教, STUDENT: 学生 +*/ +function CourseGroupList(props) { + const [checkBoxRoles, setCheckBoxRoles] = useState() + + const courseId = props.match.params.coursesId + + useEffect(() => { + fetchAll() + }, []) + function fetchAll() { + const url = `/courses/${courseId}/course_groups.json` + } + const onConfirm = async () => { + } + + function createGroupImportSuccess() { + + } + function addDir() { + + } + function deleteDir() { + + } + function onPressEnter() { + + } + function onInputSearchChange() { + + } + function onInputSearchChange() { + + } + function Downloadcal() { + + } + const confirmysl = (url) => { + axios.get(url + 'export=true').then((response) => { + if(response === undefined){ + return + } + if(response.data.status&&response.data.status===-1){ + + }else if(response.data.status&&response.data.status===-2){ + if(response.data.message === "100"){ + // 已超出文件导出的上限数量(100 ),建议: + + this.setState({ + DownloadType:true, + DownloadMessageval:100 + }) + }else { + //因附件资料超过500M + this.setState({ + DownloadType:true, + DownloadMessageval:500 + }) + } + }else { + props.slowDownload(url) + } + }).catch((error) => { + console.log(error) + }); + } + + const isAdmin = true; + const isSuperAdmin = true; + const isParent = true; + const searchValue = ''; + const isCourseEnd= ''; + const course_group_id= ''; + + const DownloadMessageval= ''; + const DownloadType= ''; + const total_count = 9 + + let exportUrl = `/courses/${courseId}/export_member_scores_excel.xlsx?`; //总成绩 + let exportUrltwo = `/courses/${courseId}/export_couser_info.xlsx?`; //课堂信息 + let exportUrlthree = `/courses/${courseId}/export_member_act_score.xlsx?`; //活跃度 + return ( + + + = 10} + searchPlaceholder={ '请输入姓名、学号进行搜索' } + firstRowRight={ + + { // pageType !== TYPE_STUDENTS && + isSuperAdmin && + {/* ref="createGroupByImportModal" */} + + {/* this.refs['createGroupByImportModal'].setVisible(true) */} + {}}>导入创建分班 + } + { + // pageType !== TYPE_STUDENTS && + !isCourseEnd && isAdmin && isParent && addDir()}>添加分班 } + { + isAdmin && !isParent && course_group_id != 0 && deleteDir()}>删除分班 } + {/* { + isAdmin && !isParent && course_group_id != 0 && this.renameDir()}>分班重命名 } */} + + { isAdmin && +
  • + 导出 + +
  • + } +
    + } + secondRowLeft={ + total_count ? : '' + } + onPressEnter={onPressEnter} + >
    +
    + ) +} +export default CourseGroupList \ No newline at end of file From e4ec0cc0a278ff8e79374119e0a259dd799be420 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 11 Oct 2019 15:25:17 +0800 Subject: [PATCH 02/22] list --- .../courses/members/CourseGroupList.js | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/public/react/src/modules/courses/members/CourseGroupList.js b/public/react/src/modules/courses/members/CourseGroupList.js index 26a1abda3..15bc12bd8 100644 --- a/public/react/src/modules/courses/members/CourseGroupList.js +++ b/public/react/src/modules/courses/members/CourseGroupList.js @@ -24,15 +24,27 @@ import ChangeRolePop from './ChangeRolePop' 角色数组, CREATOR: 创建者, PROFESSOR: 教师, ASSISTANT_PROFESSOR: 助教, STUDENT: 学生 */ function CourseGroupList(props) { - const [checkBoxRoles, setCheckBoxRoles] = useState() + const [serachValue, setSerachValue] = useState('') + + const [DownloadType, setDownloadType] = useState() + const [DownloadMessageval, setDownloadMessageval] = useState() + + const [listRes, setListRes] = useState({}) const courseId = props.match.params.coursesId useEffect(() => { fetchAll() }, []) - function fetchAll() { + async function fetchAll() { const url = `/courses/${courseId}/course_groups.json` + const response = await axios.get(url, params: { + search: searchValue + }); + console.log(response) + if (response) { + setListRes(response.data) + } } const onConfirm = async () => { } @@ -52,8 +64,8 @@ function CourseGroupList(props) { function onInputSearchChange() { } - function onInputSearchChange() { - + function onInputSearchChange(e) { + setSerachValue(e.target.value) } function Downloadcal() { @@ -67,18 +79,13 @@ function CourseGroupList(props) { }else if(response.data.status&&response.data.status===-2){ if(response.data.message === "100"){ - // 已超出文件导出的上限数量(100 ),建议: - - this.setState({ - DownloadType:true, - DownloadMessageval:100 - }) + // 已超出文件导出的上限数量(100 ),建议: + setDownloadType(true) + setDownloadMessageval(100) }else { - //因附件资料超过500M - this.setState({ - DownloadType:true, - DownloadMessageval:500 - }) + //因附件资料超过500M + setDownloadType(true) + setDownloadMessageval(500) } }else { props.slowDownload(url) @@ -97,7 +104,9 @@ function CourseGroupList(props) { const DownloadMessageval= ''; const DownloadType= ''; - const total_count = 9 + const total_count = listRes.group_count; + const none_group_member_count = listRes.none_group_member_count; + const course_groups = listRes.course_groups let exportUrl = `/courses/${courseId}/export_member_scores_excel.xlsx?`; //总成绩 let exportUrltwo = `/courses/${courseId}/export_couser_info.xlsx?`; //课堂信息 @@ -115,7 +124,7 @@ function CourseGroupList(props) { searchValue={ searchValue } onInputSearchChange={onInputSearchChange} showSearchInput={total_count >= 10} - searchPlaceholder={ '请输入姓名、学号进行搜索' } + searchPlaceholder={ '请输入名称进行搜索' } firstRowRight={ { // pageType !== TYPE_STUDENTS && From 7d6658f72d2adaa454e9bf01f5f1e17efdd8175c Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 11 Oct 2019 15:51:26 +0800 Subject: [PATCH 03/22] table --- .../courses/members/CourseGroupList.js | 13 +- .../courses/members/CourseGroupListTable.js | 117 ++++++++++++++++++ 2 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 public/react/src/modules/courses/members/CourseGroupListTable.js diff --git a/public/react/src/modules/courses/members/CourseGroupList.js b/public/react/src/modules/courses/members/CourseGroupList.js index 15bc12bd8..248a4d52d 100644 --- a/public/react/src/modules/courses/members/CourseGroupList.js +++ b/public/react/src/modules/courses/members/CourseGroupList.js @@ -20,6 +20,7 @@ import NoneData from "../coursesPublic/NoneData" import DownloadMessageysl from "../../modals/DownloadMessageysl"; import CreateGroupByImportModal from './modal/CreateGroupByImportModal' import ChangeRolePop from './ChangeRolePop' +import CourseGroupListTable from './CourseGroupListTable' /** 角色数组, CREATOR: 创建者, PROFESSOR: 教师, ASSISTANT_PROFESSOR: 助教, STUDENT: 学生 */ @@ -38,9 +39,9 @@ function CourseGroupList(props) { }, []) async function fetchAll() { const url = `/courses/${courseId}/course_groups.json` - const response = await axios.get(url, params: { + const response = await axios.get(url, { params: { search: searchValue - }); + }}); console.log(response) if (response) { setListRes(response.data) @@ -102,8 +103,7 @@ function CourseGroupList(props) { const isCourseEnd= ''; const course_group_id= ''; - const DownloadMessageval= ''; - const DownloadType= ''; + const total_count = listRes.group_count; const none_group_member_count = listRes.none_group_member_count; const course_groups = listRes.course_groups @@ -192,6 +192,11 @@ function CourseGroupList(props) { } onPressEnter={onPressEnter} > + + ) } diff --git a/public/react/src/modules/courses/members/CourseGroupListTable.js b/public/react/src/modules/courses/members/CourseGroupListTable.js new file mode 100644 index 000000000..96a13cf27 --- /dev/null +++ b/public/react/src/modules/courses/members/CourseGroupListTable.js @@ -0,0 +1,117 @@ +import React, { useState, useEffect } from 'react' + +import { Input,Checkbox,Table, Pagination, Modal,Menu ,Spin, Tooltip , Divider, Popconfirm } from "antd"; + +import { WordsBtn, trigger, on, off, getUrl, downloadFile , sortDirections } from 'educoder' +/** + 角色数组, CREATOR: 创建者, PROFESSOR: 教师, ASSISTANT_PROFESSOR: 助教, STUDENT: 学生 + course_members_count: 0 + id: 2441 + invite_code: "WUNX9K" + member_manager: "全部教师" + name: "e'e'e" +*/ +function buildColumns() { + const columns=[{ + title: '序号', + dataIndex: 'id', + key: 'id', + align:'center', + width:"10%", + className:"color-grey-6", + render: (id, record, index) => { + return index + 1 + } + }, + { + title: '分班名称', + dataIndex: 'name', + key: 'name', + align:'center', + width:"20%", + className:"color-grey-6", + render: (name, record, index) => { + return name + } + }, + { + title: '邀请码', + dataIndex: 'invite_code', + key: 'invite_code', + align:'center', + width:"10%", + className:"color-grey-6", + render: (invite_code, record, index) => { + return invite_code + } + }, + { + title: '学生成员', + dataIndex: 'course_members_count', + key: 'course_members_count', + align:'center', + width:"10%", + className:"color-grey-6", + render: (course_members_count, record, index) => { + return course_members_count + } + }, + { + title: '管理教师', + dataIndex: 'member_manager', + key: 'member_manager', + align:'center', + width:"25%", + className:"color-grey-6", + render: (member_manager, record, index) => { + return member_manager + } + }, + { + title: '操作', + dataIndex: 'setting', + key: 'setting', + align:'center', + width:"25%", + className:"color-grey-6", + render: (none, record, index) => { + return + } + }, + ] + return columns +} +function CourseGroupListTable(props) { + const [serachValue, setSerachValue] = useState('') + + const courseId = props.match.params.coursesId + + useEffect(() => { + + }, []) + + const onConfirm = async () => { + } + + function deleteDir() { + + } + const isAdmin = true; + const isSuperAdmin = true; + const isParent = true; + const searchValue = ''; + const isCourseEnd= ''; + const course_group_id= ''; + + + const course_groups = props.course_groups + const columns = buildColumns() + return ( + + {/* onChange={onTableChange} */} +
    + +
    + ) +} +export default CourseGroupListTable \ No newline at end of file From 96f5a895761474315cff8be55979785ef94f5095 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Mon, 14 Oct 2019 11:30:49 +0800 Subject: [PATCH 04/22] CourseGroupListTable --- public/react/src/common/course/WordsBtn.js | 8 +- .../courses/members/CourseGroupList.js | 42 ++- .../courses/members/CourseGroupListTable.js | 240 ++++++++++++------ .../modules/courses/members/studentsList.css | 3 +- 4 files changed, 195 insertions(+), 98 deletions(-) diff --git a/public/react/src/common/course/WordsBtn.js b/public/react/src/common/course/WordsBtn.js index 85a85cfb6..e1fc5683d 100644 --- a/public/react/src/common/course/WordsBtn.js +++ b/public/react/src/common/course/WordsBtn.js @@ -8,20 +8,20 @@ class WordsBtn extends Component { } render() { - let{to, href,targets, style2 }=this.props + let{to, href,targets, style2, style, ...others }=this.props return( { to==undefined&&targets==undefined ? {this.props.children}: targets!=undefined? {this.props.children} : {this.props.children} } diff --git a/public/react/src/modules/courses/members/CourseGroupList.js b/public/react/src/modules/courses/members/CourseGroupList.js index 248a4d52d..e749adcf1 100644 --- a/public/react/src/modules/courses/members/CourseGroupList.js +++ b/public/react/src/modules/courses/members/CourseGroupList.js @@ -1,6 +1,6 @@ // 分班列表 加入分班 -import React, { useState, useEffect } from 'react' +import React, { useState, useEffect, useRef } from 'react' import { Input,Checkbox,Table, Pagination, Modal,Menu ,Spin, Tooltip , Divider, Popconfirm } from "antd"; import ClipboardJS from 'clipboard' @@ -21,6 +21,8 @@ import DownloadMessageysl from "../../modals/DownloadMessageysl"; import CreateGroupByImportModal from './modal/CreateGroupByImportModal' import ChangeRolePop from './ChangeRolePop' import CourseGroupListTable from './CourseGroupListTable' + +import './studentsList.css' /** 角色数组, CREATOR: 创建者, PROFESSOR: 教师, ASSISTANT_PROFESSOR: 助教, STUDENT: 学生 */ @@ -31,12 +33,20 @@ function CourseGroupList(props) { const [DownloadMessageval, setDownloadMessageval] = useState() const [listRes, setListRes] = useState({}) + const createGroupModalEl = useRef(null); const courseId = props.match.params.coursesId useEffect(() => { fetchAll() + on('updateNavSuccess', onOperationSuccess) + return () => { + off('updateNavSuccess', onOperationSuccess) + } }, []) + function onOperationSuccess() { + fetchAll() + } async function fetchAll() { const url = `/courses/${courseId}/course_groups.json` const response = await axios.get(url, { params: { @@ -54,7 +64,7 @@ function CourseGroupList(props) { } function addDir() { - + trigger('groupAdd', props.coursesids) } function deleteDir() { @@ -96,8 +106,8 @@ function CourseGroupList(props) { }); } - const isAdmin = true; - const isSuperAdmin = true; + const isAdmin = props.isAdmin(); + const isSuperAdmin = props.isSuperAdmin(); const isParent = true; const searchValue = ''; const isCourseEnd= ''; @@ -107,6 +117,7 @@ function CourseGroupList(props) { const total_count = listRes.group_count; const none_group_member_count = listRes.none_group_member_count; const course_groups = listRes.course_groups + const current_group_id = listRes.current_group_id let exportUrl = `/courses/${courseId}/export_member_scores_excel.xlsx?`; //总成绩 let exportUrltwo = `/courses/${courseId}/export_couser_info.xlsx?`; //课堂信息 @@ -131,16 +142,17 @@ function CourseGroupList(props) { isSuperAdmin && {/* ref="createGroupByImportModal" */} {/* this.refs['createGroupByImportModal'].setVisible(true) */} - {}}>导入创建分班 + {createGroupModalEl.current.setVisible(true)}}>导入创建分班 } { // pageType !== TYPE_STUDENTS && - !isCourseEnd && isAdmin && isParent && addDir()}>添加分班 } - { - isAdmin && !isParent && course_group_id != 0 && deleteDir()}>删除分班 } + !isCourseEnd && isAdmin && isParent && addDir()}>新建分班 } + {/* { + isAdmin && !isParent && course_group_id != 0 && deleteDir()}>删除分班 } */} {/* { isAdmin && !isParent && course_group_id != 0 && this.renameDir()}>分班重命名 } */} + {this.props.isAdmin?this.stopPro(event)} className={this.props.isAdminOrCreator()?"homepagePostSetting homepagePostSettingname":"homepagePostSetting homepagePostSettingbox"} style={{"right":"-2px","top":"6px","display":"block"}}> + 实训详情 + {this.props.isAdminOrCreator()?this.editname(discussMessage.name,discussMessage.homework_id,event)} className={"btn colorblue ml20 font-16"}>重命名:""} + {/* 设置*/} + 设置 + :""} + + + {this.props.isStudent===true?this.props.course_identity===5? + + {startbtn===false? + (discussMessage.task_operation[0] == '继续挑战' || discussMessage.task_operation[0] == '查看实战' ? + + {discussMessage.task_operation[0]} + + : + this.taskoperationId(discussMessage.task_operation[1])}> + {discussMessage.task_operation[0]} + ):开启中} + :"":"" + }
    -

    - +

    + {/* {discussMessage.author.name} */} { discussMessage.author && {discussMessage.author} } {discussMessage.commit_count===undefined?"":已开始做题 {discussMessage.commit_count}人} @@ -381,7 +414,7 @@ class ShixunhomeWorkItem extends Component{ { discussMessage && discussMessage.upper_category_name && 22 }> - { {discussMessage.upper_category_name}} + {

    所属目录:{discussMessage.upper_category_name}
    } } @@ -396,39 +429,6 @@ class ShixunhomeWorkItem extends Component{

    - - {this.props.isAdmin?
    this.stopPro(event)} className={this.props.isAdminOrCreator()?"homepagePostSetting homepagePostSettingname":"homepagePostSetting homepagePostSettingbox"} style={{"right":"-2px","top":"46px","display":"block"}}> - 实训详情 - {this.props.isAdminOrCreator()?this.editname(discussMessage.name,discussMessage.homework_id,event)} className={"btn colorblue ml20 font-16"}>重命名:""} - {/* 设置*/} - 设置 -
    :""} - - - {this.props.isStudent===true?this.props.course_identity===5? - - {startbtn===false? - (discussMessage.task_operation[0] == '继续挑战' || discussMessage.task_operation[0] == '查看实战' ? - - {discussMessage.task_operation[0]} - - : - this.taskoperationId(discussMessage.task_operation[1])}> - {discussMessage.task_operation[0]} - ):开启中} - :"":"" - } diff --git a/public/react/src/modules/courses/shixunHomework/shixunHomework.js b/public/react/src/modules/courses/shixunHomework/shixunHomework.js index cbfdaf72b..5124bdd58 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunHomework.js +++ b/public/react/src/modules/courses/shixunHomework/shixunHomework.js @@ -1152,7 +1152,7 @@ class ShixunHomework extends Component{ {this.props.isAdmin()===true?datas&&datas.category_name===undefined||datas&&datas.category_name===null? - this.addDir()} className={"mr30 font-16"}>添加目录 + this.addDir()} className={"mr30 font-16"}>新建目录 {/*this.editname(datas&&datas.main_category_name)} className={"mr30"}>目录重命名*/} : this.editDir(datas&&datas.category_name)} className={"mr30 font-16"}>目录重命名:""} @@ -1252,7 +1252,7 @@ class ShixunHomework extends Component{ {this.props.isAdmin()?datas&&datas.category_name===undefined||datas&&datas.category_name===null?

    - this.addDir()}>添加目录... + this.addDir()}>新建目录...

    :"":""} diff --git a/public/react/src/modules/login/LoginDialog.js b/public/react/src/modules/login/LoginDialog.js index 3f5afd845..552e8765e 100644 --- a/public/react/src/modules/login/LoginDialog.js +++ b/public/react/src/modules/login/LoginDialog.js @@ -541,7 +541,7 @@ class LoginDialog extends Component { if (isRender === undefined) { isRender = false } - console.log(this.props) + // console.log(this.props) return ( Date: Mon, 14 Oct 2019 14:13:18 +0800 Subject: [PATCH 06/22] isCourseEnd --- public/react/src/common/course/WordsBtn.js | 2 +- .../src/modules/courses/members/CourseGroupList.js | 14 ++++++-------- .../courses/members/CourseGroupListTable.js | 4 ++-- .../src/modules/courses/members/studentsList.js | 2 +- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/public/react/src/common/course/WordsBtn.js b/public/react/src/common/course/WordsBtn.js index e1fc5683d..68b278507 100644 --- a/public/react/src/common/course/WordsBtn.js +++ b/public/react/src/common/course/WordsBtn.js @@ -8,7 +8,7 @@ class WordsBtn extends Component { } render() { - let{to, href,targets, style2, style, ...others }=this.props + let{to, href,targets, style2, style, className, ...others }=this.props return( { diff --git a/public/react/src/modules/courses/members/CourseGroupList.js b/public/react/src/modules/courses/members/CourseGroupList.js index e749adcf1..1fa71a1ae 100644 --- a/public/react/src/modules/courses/members/CourseGroupList.js +++ b/public/react/src/modules/courses/members/CourseGroupList.js @@ -27,7 +27,7 @@ import './studentsList.css' 角色数组, CREATOR: 创建者, PROFESSOR: 教师, ASSISTANT_PROFESSOR: 助教, STUDENT: 学生 */ function CourseGroupList(props) { - const [serachValue, setSerachValue] = useState('') + const [searchValue, setSearchValue] = useState('') const [DownloadType, setDownloadType] = useState() const [DownloadMessageval, setDownloadMessageval] = useState() @@ -70,13 +70,10 @@ function CourseGroupList(props) { } function onPressEnter() { - - } - function onInputSearchChange() { - + fetchAll() } function onInputSearchChange(e) { - setSerachValue(e.target.value) + setSearchValue(e.target.value) } function Downloadcal() { @@ -109,8 +106,9 @@ function CourseGroupList(props) { const isAdmin = props.isAdmin(); const isSuperAdmin = props.isSuperAdmin(); const isParent = true; - const searchValue = ''; - const isCourseEnd= ''; + // const searchValue = ''; + const isCourseEnd= props.isCourseEnd(); + const course_group_id= ''; diff --git a/public/react/src/modules/courses/members/CourseGroupListTable.js b/public/react/src/modules/courses/members/CourseGroupListTable.js index e9e315541..779e40f5e 100644 --- a/public/react/src/modules/courses/members/CourseGroupListTable.js +++ b/public/react/src/modules/courses/members/CourseGroupListTable.js @@ -124,7 +124,7 @@ function CourseGroupListTable(props) { className:"color-grey-6", render: (none, record, index) => { return - {isAdmin && onDelete(record)} style={'grey'}>删除} + {!isCourseEnd && isAdmin && onDelete(record)} style={'grey'}>删除} {isAdmin && 复制邀请码 } {isStudent && addToDir(record)} style={''}>加入分班} @@ -182,7 +182,7 @@ function CourseGroupListTable(props) { const isStudent = props.isStudent() const isParent = true; - const isCourseEnd= ''; + const isCourseEnd= props.isCourseEnd(); const course_groups = props.course_groups const columns = buildColumns() diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js index 3a5a55b71..9acc4c0bf 100644 --- a/public/react/src/modules/courses/members/studentsList.js +++ b/public/react/src/modules/courses/members/studentsList.js @@ -833,7 +833,7 @@ class studentsList extends Component{
    - {students && students.length && + {students && !!students.length &&
    }
    From 75cdca0b08f41b52ab86f69a5d6b3f69a7063da9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Mon, 14 Oct 2019 14:17:02 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/login/Otherlogin.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/login/Otherlogin.js b/public/react/src/modules/login/Otherlogin.js index 6e240ece0..41f276285 100644 --- a/public/react/src/modules/login/Otherlogin.js +++ b/public/react/src/modules/login/Otherlogin.js @@ -270,7 +270,10 @@ class Otherlogin extends Component { + placeholder="请输入密码" + autoComplete="new-password" + type="password" + > {this.state.logintypes==="username"?请填写账号:this.state.logintypes==="password"?请填写密码:""}