diff --git a/app/templates/shared/main.css b/app/templates/shared/main.css index c77818f16..9e9bc4f50 100644 --- a/app/templates/shared/main.css +++ b/app/templates/shared/main.css @@ -760,9 +760,9 @@ html>body #ajax-indicator { position: fixed; } .paddingLeft28{padding-left:28px;} -.ant-modal-header{ - border-radius: 10px; -} +/*.ant-modal-header{*/ + /*border-radius: 10px;*/ +/*}*/ .color656565{ color:#656565; diff --git a/public/react/src/common/UrlTool.js b/public/react/src/common/UrlTool.js index 12505186a..e1c9f0c74 100644 --- a/public/react/src/common/UrlTool.js +++ b/public/react/src/common/UrlTool.js @@ -1,10 +1,10 @@ const isDev = window.location.port == 3007; -export const TEST_HOST = "https://pre-newweb.educoder.net" +export const TEST_HOST = "http://pre-newweb.educoder.net" export function getImageUrl(path) { // https://www.educoder.net // https://testbdweb.trustie.net // const local = 'http://localhost:3000' - const local = 'https://pre-newweb.educoder.net' + const local = 'http://pre-newweb.educoder.net' if (isDev) { return `${local}/${path}` } @@ -12,7 +12,7 @@ export function getImageUrl(path) { } export function setImagesUrl(path){ - const local = 'https://pre-newweb.educoder.net' + const local = 'http://pre-newweb.educoder.net' let firstStr=path.substr(0,1); // console.log(firstStr); if(firstStr=="/"){ @@ -31,7 +31,7 @@ export function getUrl(path, goTest) { // testbdweb.educoder.net testbdweb.trustie.net // const local = goTest ? 'https://testeduplus2.educoder.net' : 'http://localhost:3000' // const local = 'https://testeduplus2.educoder.net' - const local = 'https://pre-newweb.educoder.net' + const local = 'http://pre-newweb.educoder.net' if (isDev) { return `${local}${path?path:''}` } diff --git a/public/react/src/common/educoder.js b/public/react/src/common/educoder.js index 6f3284db2..8eb34ef55 100644 --- a/public/react/src/common/educoder.js +++ b/public/react/src/common/educoder.js @@ -70,3 +70,5 @@ export { CNotificationHOC as CNotificationHOC } from '../modules/courses/common/ export { default as ModalWrapper } from '../modules/courses/common/ModalWrapper' export { default as NoneData } from '../modules/courses/coursesPublic/NoneData' +export {default as WordNumberTextarea} from '../modules/modals/WordNumberTextarea' + diff --git a/public/react/src/context/TPIContextProvider.js b/public/react/src/context/TPIContextProvider.js index 998d58580..0e0d7be1b 100644 --- a/public/react/src/context/TPIContextProvider.js +++ b/public/react/src/context/TPIContextProvider.js @@ -174,7 +174,7 @@ class TPIContextProvider extends Component { } let testPath = '' if (window.location.port == 3007) { - testPath = 'https://pre-newweb.educoder.net' + testPath = 'http://pre-newweb.educoder.net' } // var url = `${testPath}/api/v1/games/${ game.identifier }/cost_time` var url = `${testPath}/api/tasks/${ game.identifier }/cost_time` diff --git a/public/react/src/index.css b/public/react/src/index.css index ee89ffc11..efd553bf3 100644 --- a/public/react/src/index.css +++ b/public/react/src/index.css @@ -25,9 +25,9 @@ body { .ant-message{ z-index: 20000; } -.ant-modal-header{ - border-radius: 10px; -} +/*.ant-modal-header{*/ + /*border-radius: 10px;*/ +/*}*/ .ant-upload-list-item-info .anticon-loading, .ant-upload-list-item-info .anticon-paper-clip{ color: #29bd8b !important; } diff --git a/public/react/src/modules/courses/coursesPublic/AccessoryModal.js b/public/react/src/modules/courses/coursesPublic/AccessoryModal.js index 5541a01a6..71d92cd0c 100644 --- a/public/react/src/modules/courses/coursesPublic/AccessoryModal.js +++ b/public/react/src/modules/courses/coursesPublic/AccessoryModal.js @@ -1,9 +1,11 @@ import React,{ Component } from "react"; -import { Modal,Checkbox,Upload,Button,Icon,message,notification} from "antd"; -import { WordsBtn,getUrl, getUploadActionUrl} from 'educoder'; +import { Modal,Checkbox,Upload,Button,Icon,message,notification,Input} from "antd"; +import { WordsBtn,getUrl, getUploadActionUrl,WordNumberTextarea} from 'educoder'; import axios from 'axios'; import Modals from '../../modals/Modals'; + const CheckboxGroup = Checkbox.Group; +const { TextArea } = Input; class AccessoryModal extends Component{ constructor(props){ @@ -19,6 +21,7 @@ class AccessoryModal extends Component{ updatas:false, shixunsreplace:false, Errormessage:false, + description:undefined } } @@ -238,6 +241,7 @@ class AccessoryModal extends Component{ ModalSave, loadtype, shixunsreplace, + description }=this.state; let {course_groups}=this.props; const uploadProps = { @@ -258,7 +262,6 @@ class AccessoryModal extends Component{ }, }; - return( @@ -335,23 +338,24 @@ class AccessoryModal extends Component{

- + this.settextarea(e)} + value={description} + maxlength={100} + /> + { this.state.Errormessage && this.state.Errormessage === true ?

还未上传附件

- :
+ : "" } {this.state.updatas===true?请上传附件:""}
- {this.props.Cancelname || '取消'} + {this.props.Cancelname || '取消'} this.Saves()}>{this.props.Savesname || '确认'}
diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal.js b/public/react/src/modules/courses/coursesPublic/ModulationModal.js index 46dc3becf..974077793 100644 --- a/public/react/src/modules/courses/coursesPublic/ModulationModal.js +++ b/public/react/src/modules/courses/coursesPublic/ModulationModal.js @@ -1,6 +1,6 @@ import React,{ Component } from "react"; import { Modal,Checkbox,Upload,Button,Icon,message,Input} from "antd"; - +import { WordNumberTextarea } from 'educoder'; class ModulationModal extends Component{ constructor(props){ @@ -78,12 +78,20 @@ class ModulationModal extends Component{
- + {/**/} + + this.settextarea(e)} + value={textareaval} + maxlength={100} + /> +
  • 原因不能为空
  • diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js index fcbe6b9aa..ce704ef6e 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js @@ -77,16 +77,6 @@ class GraduationTasksSubmitedit extends Component{ } - setedit=()=>{ - // let coursesId=this.props.match.params.coursesId; - // let workId=this.props.match.params.work_Id; - // let {workslist}=this.state - // let task_id=workslist&&workslist.task_id; - // window.location.href="/courses/"+coursesId+"/graduation_tasks/"+task_id+"/"+workId+"/works/edit"; - this.goback() - } - - handleSelectChange = (value) => { console.log(value); @@ -103,7 +93,8 @@ class GraduationTasksSubmitedit extends Component{ // }else{ // this.props.history.push(this.props.current_user.first_category_url); // } - this.props.history.goBack() + this.props.history.replace(`/courses/${this.state.workslist.course_id}/graduation_tasks/${this.state.workslist.graduation_id}`); + } @@ -378,6 +369,9 @@ class GraduationTasksSubmitedit extends Component{ } Commoninterface =(fileList,selectmemberslist,workslist)=>{ + let coursesIds=this.props.match.params.coursesId + let workId=this.props.match.params.work_Id; + let userids=[]; for(var list of selectmemberslist){ @@ -424,7 +418,7 @@ class GraduationTasksSubmitedit extends Component{ this.setState({ spinnings:true }) - let workId=this.props.match.params.work_Id; + // if(fileList.length===0){ // this.setState({ @@ -444,8 +438,8 @@ class GraduationTasksSubmitedit extends Component{ spinnings:false }) if(response!== undefined){ - this.setedit() - + // this.goback() + window.location.href=`/courses/${coursesIds}/graduation_tasks/${workId}/appraise` } // if(response.status===200) { // GraduationTasksnewtype=false; diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js index dadc621b2..3c8318796 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js @@ -105,7 +105,7 @@ class GraduationTasksSubmitnew extends Component{ // }else{ // this.props.history.push(this.props.current_user.first_category_url); // } - this.props.history.goBack() + this.props.history.replace(`/courses/${this.state.workslist.course_id}/graduation_tasks/${this.state.workslist.graduation_id}`); } @@ -361,9 +361,7 @@ class GraduationTasksSubmitnew extends Component{ return false; } } - gocannel=()=>{ - this.props.history.goBack() - } + //公用数据 Commoninterface = (fileList,selectmemberslist,workslist)=>{ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraise.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraise.js index d01be4676..c03ffc1e0 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraise.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraise.js @@ -76,7 +76,9 @@ class GraduationTasksappraise extends Component{ // }else{ // this.props.history.push(this.props.current_user.first_category_url); // } - this.props.history.goBack() + + this.props.history.replace(`/courses/${this.state.datalist.course_id}/graduation_tasks/${this.state.datalist.graduation_id}/${this.state.datalist.task_id}/list`); + } Cancelvisible=()=>{ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js index 6f1b2db06..42a128719 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksedit.js @@ -18,7 +18,7 @@ class GraduationTasksedit extends Component{ this.state={ coursename:"", coursesearch:"", - title_num:60, + title_num:0, title_value:"", fileList: [], contents: [{val:"",id:1}], @@ -53,14 +53,14 @@ class GraduationTasksedit extends Component{ // // } let namelength=result.data.task_name.length; - let sixlength=title_num-namelength + // let sixlength=title_num-namelength this.setState({ // fileList:newfilelist, description:result.data.description, tasktype:result.data.task_type, name:result.data.task_name, data:result.data, - title_num:sixlength, + title_num:namelength, attachments:result.data.attachments, }) @@ -88,15 +88,15 @@ class GraduationTasksedit extends Component{ // }else{ // this.props.history.push(this.props.current_user.first_category_url); // } - this.props.history.goBack() + this.props.history.replace(`/courses/${this.state.data.course_id}/graduation_tasks/${this.state.data.graduation_id}`); } // 输入title changeTitle=(e)=>{ - + // title_num:60-parseInt(e.target.value.length), this.setState({ - title_num:60-parseInt(e.target.value.length), + title_num:e.target.value.length, title_value:e.target.value }) @@ -379,7 +379,7 @@ class GraduationTasksedit extends Component{ {getFieldDecorator('name', { rules: [{ required: true, message: "请输入标题" }], - })()} + })()} diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksnew.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksnew.js index efe2bdd07..7c499430a 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksnew.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksnew.js @@ -19,7 +19,7 @@ class GraduationTasksnew extends Component { this.state = { coursename: "", coursesearch: "", - title_num: 60, + title_num: 0, title_value: "", fileList: [], contents: [{val: "", id: 1}], @@ -113,15 +113,16 @@ class GraduationTasksnew extends Component { // }else{ // this.props.history.push(this.props.current_user.first_category_url); // } - this.props.history.goBack() + // this.props.history.goBack() + this.props.history.replace(`/courses/${this.props.match.params.coursesId}/graduation_tasks/${this.props.match.params.category_id}`); } // 输入title changeTitle = (e) => { - + // title_num: 60 - parseInt(e.target.value.length), this.setState({ - title_num: 60 - parseInt(e.target.value.length), + title_num: e.target.value.length, title_value: e.target.value }) @@ -384,7 +385,7 @@ class GraduationTasksnew extends Component { rules: [{required: true, message: "不能为空"}], })()} + suffix={String(title_num)+"/60"}/>)} diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js index e679702da..7e5707695 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js @@ -771,7 +771,10 @@ class GraduationTaskssettingapp extends Component{ // }else{ // this.props.history.push(this.props.current_user.first_category_url); // } - this.props.history.goBack() + // this.props.history.goBack() + // this.props.history.replace(this.props.current_user.first_category_url); + this.props.history.replace(`/courses/${this.state.settingdata.course_id}/graduation_tasks/${this.state.settingdata.graduation_id}`); + } isgoback=()=>{ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js index 816d53526..9718de28a 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js @@ -64,9 +64,10 @@ class GraduationTaskssettinglist extends Component{ // if(courseId===undefined){ // this.props.history.push("/courses"); // }else{ - // this.props.history.push(this.props.current_user.first_category_url); + // this.props.history.push(this.props.current_user.first_category_url); // } - this.props.history.goBack() + // this.props.history.goBack() + this.props.history.replace(`/courses/${this.state.taskslistdata.course_id}/graduation_tasks/${this.state.taskslistdata.graduation_id}`); } seacthdata=(teacher_comment,task_status,course_group,cross_comment,order,b_order,search,pages)=>{ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js index 22ce6fa04..b8296f9ef 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js @@ -62,7 +62,8 @@ class GraduationTasksquestions extends Component{ // this.props.history.push(this.props.current_user.first_category_url); // } - this.props.history.goBack() + // this.props.history.goBack() + this.props.history.replace(`/courses/${this.state.questionslist.course_id}/graduation_tasks/${this.state.questionslist.graduation_id}`); } end=()=>{ diff --git a/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js b/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js index f46d3f6b1..9b78729a9 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js @@ -113,21 +113,19 @@ class ShixunHomeworkPage extends Component { bindRef = ref => { this.child = ref } ///////////////教师截止 gotohome=()=>{ - // let courseId=this.props.match.params.coursesId; - // if(courseId===undefined){ - // this.props.history.push("/courses"); - // }else{ - // this.props.history.push(this.props.current_user.first_category_url); - // } - this.props.history.goBack() + // console.log(this.props) + let {jobsettingsdatapage}=this.state + + this.props.history.replace(`/courses/${this.props.match.params.coursesId}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.mian === 1 ? "shixun_homeworks" :"shixun_homework"}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.category_id === undefined ? "" : jobsettingsdatapage.data.category.category_id}`); } render() { let {tab, teacherdatapage, jobsettingsdatapage} = this.state; const isAdmin = this.props.isAdmin(); // console.log(119) - // console.log(jobsettingsdatapage); - // console.log(teacherdatapage); + console.log(jobsettingsdatapage); + + return (
    @@ -136,11 +134,11 @@ class ShixunHomeworkPage extends Component {

    - this.gotohome()}>{jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.course_name} + {jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.course_name} > {jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.category_name} + href={`/courses/${this.props.match.params.coursesId}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.mian === 1 ? "shixun_homeworks" :"shixun_homework"}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.category_id === undefined ? "" : jobsettingsdatapage.data.category.category_id}`}>{jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.category_name} > 作业详情

    @@ -240,14 +238,14 @@ class ShixunHomeworkPage extends Component { this.workshowmodels(this.child)}>代码查重 : "" : ""} {this.state.view_report === true ? + to={`/courses/${this.props.match.params.coursesId}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.mian === 1 ? "shixun_homeworks" :"shixun_homework"}/${teacherdatapage&&teacherdatapage.work_id}/shixun_work_report`}> 查看实训报告 : ""} { teacherdatapage === undefined ? "" : teacherdatapage.commit_des === null || teacherdatapage.commit_des === undefined ? "" : {teacherdatapage.commit_des} + href={`/courses/${this.props.match.params.coursesId}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.mian === 1 ? "shixun_homeworks" :"shixun_homework"}/${teacherdatapage === undefined ? "" : teacherdatapage.id}/commitsummary/${this.props.match.params.homeworkid}`}>{teacherdatapage.commit_des} } {teacherdatapage === undefined ? "" : { - - this.props.history.goBack() + this.props.history.replace(`/courses/${this.props.match.params.coursesId}/shixun_homeworks/${this.state.data.homework_common_id}/list?tab=0`); } render() { let{data} =this.state; @@ -159,7 +158,7 @@ class ShixunWorkReport extends Component { {/*className="fr color-blue font-16"*/} {/*onClick={()=>this.confirmysl(`/student_works/${homeworkid}/export_shixun_work_report.pdf`)}*/} {/*>导出实训报告数据 : ""}*/} - {/*返回*/} + 返回
    diff --git a/public/react/src/modules/modals/WordNumberTextarea.css b/public/react/src/modules/modals/WordNumberTextarea.css new file mode 100644 index 000000000..9bd8c820c --- /dev/null +++ b/public/react/src/modules/modals/WordNumberTextarea.css @@ -0,0 +1,42 @@ +.WordNumberTextarea { + outline: none; /* 去掉输入字符时的默认样式 */ + appearance:none; + -webkit-appearance:none; + -moz-appearance:none; + background-color: white; + text-shadow: none; + -webkit-writing-mode: horizontal-tb !important; + -webkit-tap-highlight-color:rgba(0,0,0,0); + resize:none; /*禁止拉伸*/ + border: none; /*去掉默认边框*/ + width: 100%; + height:150px; + border:none; + padding: 10px; + display: block; +} + +.WordNumbernote { + padding: 0; + margin: 0; + list-style: none; + text-decoration: none; + box-sizing: border-box; + overflow: hidden; + height: auto; + border: 1px solid rgba(234,234,234,1); + border-radius: 0.125rem; + margin: 0.31rem; + padding: 0.19rem; + backgroud:rgba(234,234,234,1); + padding-bottom: 10px; + padding-right: 10px; + +} +.WordNumberTextarea-count { + display: inline-block; + float: right; + font-size: 0.28rem; + color: #adadad; + padding-right: 0.25rem; +} diff --git a/public/react/src/modules/modals/WordNumberTextarea.js b/public/react/src/modules/modals/WordNumberTextarea.js new file mode 100644 index 000000000..52711de2c --- /dev/null +++ b/public/react/src/modules/modals/WordNumberTextarea.js @@ -0,0 +1,23 @@ +import React, { Component } from 'react'; +import './WordNumberTextarea.css'; +class WordNumberTextarea extends Component { + constructor(props) { + super(props); + } +render() { + return( +
    +