From 772a6d06cbbcbec6e4a66f19990355a2f38b9344 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Wed, 14 Aug 2019 20:05:00 +0800 Subject: [PATCH] member --- .../courses/busyWork/CommonWorkPost.js | 104 ++++++++++++++---- 1 file changed, 83 insertions(+), 21 deletions(-) diff --git a/public/react/src/modules/courses/busyWork/CommonWorkPost.js b/public/react/src/modules/courses/busyWork/CommonWorkPost.js index 7f4020590..a4da49d4b 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkPost.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkPost.js @@ -5,6 +5,8 @@ import TPMMDEditor from '../../tpm/challengesnew/TPMMDEditor'; import { WordsBtn, getUploadActionUrl, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll } from 'educoder'; import axios from 'axios'; import Modals from '../../modals/Modals'; +import _ from 'lodash' + const Search = Input.Search; const CheckboxGroup = Checkbox.Group; @@ -67,15 +69,19 @@ class CommonWorkPost extends Component{ status: 'done' } }) + const _memebers = response.data.members.slice(0); + this._edit_init_memebers = _memebers + delete response.data.members; this.setState({ ...response.data, - selectmemberslist: response.data.members || [], + selectmemberslist: _memebers || [], // members: [], - task_status: response.data.members ? response.data.members.map(item => item.user_id) : [], + task_status: [], //_memebers ? _memebers.map(item => item.user_id) : [], fileList: _fileList, memberNumMin: response.data.min_num, memberNumMax: response.data.max_num, }) + this.mine = _memebers.length ? _memebers[0] : null // 分组 // this.setState({ // task_status:checkedValues, @@ -99,6 +105,11 @@ class CommonWorkPost extends Component{ group_name: response.data.group_name, } + this.mine = mine + // const _memebers = response.data.members.slice(0); + if (response.data.members) { + delete response.data.members; + } this.setState({ ...response.data, selectmemberslist: [mine], @@ -157,7 +168,7 @@ class CommonWorkPost extends Component{ } if(isGroup){ if(userids!=undefined){ - if(userids.length + 1memberNumMax){ + }else if(userids.length > memberNumMax){ this.setState({ minvalue: memberNumMax, setvalue:"大于", @@ -424,30 +435,53 @@ class CommonWorkPost extends Component{ } funtaskstatus=(checkedValues)=>{ - let{members}=this.state; - let newlist =members.concat(this.state.selectmemberslist); - let newcheckedValues=checkedValues; - let selects=[]; - // const selectobjct = this._findByUserId(check) - // selects.push(selectobjct) - for(var z=0; z this.state.task_status.length 是新增; 反之是删除 + 比较找到不同的id + 去除重复的,checkedValues留下的是新增,task_status留下的是删除 + */ + + const _checkedValues = checkedValues.slice(0) + const _task_status = this.state.task_status.slice(0); + checkedValues.forEach(item => { + this.state.task_status.forEach(_item => { + if (item == _item) { + _.remove(_checkedValues, (item)=> item == _item) + _.remove(_task_status, (item)=> item == _item) } - } - - } + }) + }) + let _selectmemberslist = this.state.selectmemberslist.slice(0) + if (_checkedValues.length) { // 新增 + _selectmemberslist.push( this.state.members.filter(item => item.user_id == _checkedValues[0])[0]) + } else if (_task_status.length) { // 删除 + _.remove(_selectmemberslist, (item)=> item.user_id == _task_status[0]) + } + + + // let{members}=this.state; + // let newlist =members.concat(this.state.selectmemberslist); + // let newcheckedValues=checkedValues; + // let selects= this.mine ? [this.mine] : []; + // // const selectobjct = this._findByUserId(check) + // // selects.push(selectobjct) + // for(var z=0; z{ + doDelete = (id) => { let{selectmemberslist,task_status}=this.state; let newlist=task_status.slice(0); let selects=selectmemberslist; @@ -468,6 +502,34 @@ class CommonWorkPost extends Component{ selectmemberslist:selects }) } + delecttask_status=(id)=>{ + if (this.isEdit) { + this.props.confirm({ + content:
+
TA的作品将被删除
+
是否确认删除?
+
, + onOk: () => { + let workId=this.props.match.params.workId; + const url = `/homework_commons/${workId}/student_works/delete_work.json`; + axios.delete(url, { data: { + user_id: id + }}) + .then((response) => { + if (response.data.status == 0) { + this.searchValue() + this.doDelete(id) + } + }) + .catch(function (error) { + console.log(error); + }); + } + }) + } else { + this.doDelete(id) + } + } gocannel=()=>{ this.props.history.goBack()