diff --git a/public/react/src/modules/courses/exercise/question/shixunAnswer.js b/public/react/src/modules/courses/exercise/question/shixunAnswer.js
index 5897ebd79..f1fb09227 100644
--- a/public/react/src/modules/courses/exercise/question/shixunAnswer.js
+++ b/public/react/src/modules/courses/exercise/question/shixunAnswer.js
@@ -135,8 +135,8 @@ class shixunAnswer extends Component{
let url=`/exercise_questions/${this.props.questionType.question_id}/adjust_score.json`
const list = Object.assign({}, this.state.dataCopy[key])
- console.log("111111111111111111111111");
- console.log(this.props);
+ // console.log("111111111111111111111111");
+ // console.log(this.props);
// 调分值为0,且和第一次的数据相同则不修改
if(parseInt(e.target.value)==parseInt(list.my_score)){
return;
diff --git a/public/react/src/modules/courses/graduation/topics/GraduateTopicNew.js b/public/react/src/modules/courses/graduation/topics/GraduateTopicNew.js
index 569c76331..43a0e31f5 100644
--- a/public/react/src/modules/courses/graduation/topics/GraduateTopicNew.js
+++ b/public/react/src/modules/courses/graduation/topics/GraduateTopicNew.js
@@ -1,614 +1,614 @@
-import React,{ Component } from "react";
-
-import {
- Form, Input, InputNumber, Switch, Radio,
- Slider, Button, Upload, Icon, Rate, Checkbox, message,
- Row, Col, Select, Modal,Cascader
-} from 'antd';
-import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor';
-import axios from 'axios'
-import {getUrl} from 'educoder';
-import "../../common/formCommon.css"
-import '../style.css'
-import '../../css/Courses.css'
-import { WordsBtn, City } from 'educoder'
-// import City from './City'
-
-// import './board.css'
-// import { RouteHOC } from './common.js'
-
-const confirm = Modal.confirm;
-const $ = window.$
-const { Option } = Select;
-// 新建毕设选题
-// https://lanhuapp.com/web/#/item/project/board/detail?pid=a3bcd4b1-99ce-4e43-8ead-5b8b0a410807&project_id=a3bcd4b1-99ce-4e43-8ead-5b8b0a410807&image_id=c6d9b36f-7701-4035-afdb-62404681108c
-class GraduateTopicNew extends Component{
- constructor(props){
- super(props);
-
- this.mdRef = React.createRef();
-
- this.state = {
- fileList: [],
- boards: [],
- teacherList:[],
- topic_property_first:[],
- topic_property_second:[],
- topic_repeat:[],
- topic_source:[],
- topic_type:[],
- attachments:undefined,
- addonAfter:60,
- left_banner_id:undefined,
- course_name:undefined
- }
- }
- // 获取老师列表
- getTeacherList=()=>{
- const cid = this.props.match.params.coursesId
- let url=`/courses/${cid}/graduation_topics/new.json`;
- axios.get((url)).then((result)=>{
- if(result.status==200){
- this.setState({
- teacherList:result.data.teacher_list,
- left_banner_id:result.data.left_banner_id,
- course_name:result.data.course_name,
- left_banner_name:result.data.left_banner_name,
- topic_property_first:result.data.topic_property_first,
- topic_property_second:result.data.topic_property_second,
- topic_repeat:result.data.topic_repeat,
- topic_source:result.data.topic_source,
- topic_type:result.data.topic_type
- })
- console.log("sdfds");
- console.log(this.props.current_user && this.props.current_user.user_id);
- this.props.form.setFieldsValue({
- tea_id:this.props.current_user && this.props.current_user.user_id
- })
- }
- }).catch((error)=>{
- console.log(error);
- })
- }
- componentDidMount = () => {
- //新建or编辑
- let topicId=this.props.match.params.topicId;
-
- if(topicId==undefined){
- this.getTeacherList();
- }else{
- this.getEditInfo();
-
- }
- }
- //编辑,信息显示
- getEditInfo=()=>{
- const cid = this.props.match.params.coursesId
- let topicId=this.props.match.params.topicId
- let url=`/courses/${cid}/graduation_topics/${topicId}/edit.json`;
- axios.get((url)).then((result)=>{
- if(result){
- this.setState({
- left_banner_id:result.data.left_banner_id,
- course_name:result.data.course_name,
- left_banner_name:result.data.left_banner_name,
- teacherList:result.data.teacher_list,
- topic_property_first:result.data.topic_property_first,
- topic_property_second:result.data.topic_property_second,
- topic_repeat:result.data.topic_repeat,
- topic_source:result.data.topic_source,
- topic_type:result.data.topic_type,
- attachments:result.data.attachments,
- addonAfter:20-parseInt(result.data.selected_data.name.length)
- })
- this.props.form.setFieldsValue({
- tea_id:result.data.selected_data.tea_id,
- name:result.data.selected_data.name,
- city: [result.data.selected_data.province,result.data.selected_data.city],
- topic_type:result.data.selected_data.topic_type || undefined,
- topic_source:result.data.selected_data.topic_source || undefined,
- topic_property_first:result.data.selected_data.topic_property_first || undefined,
- topic_property_second:result.data.selected_data.topic_property_second || undefined,
- source_unit:result.data.selected_data.source_unit,
- topic_repeat:result.data.selected_data.topic_repeat || undefined
- });
- this.mdRef.current.setValue(result.data.selected_data.description)
- const _fileList = result.data.attachments.map(item => {
- return {
- id: item.id,
- uid: item.id,
- name: item.title,
- url: item.url,
- status: 'done'
- }
- })
- this.setState({ fileList: _fileList, cityDefaultValue: [result.data.selected_data.province,result.data.selected_data.city] })
- }
- }).catch((error)=>{
- console.log(error);
- })
- }
-
- handleSubmit = (e) => {
- e.preventDefault();
- const cid = this.props.match.params.coursesId
- const topicId = this.props.match.params.topicId
- console.log(this.props);
-
- this.props.form.validateFieldsAndScroll((err, values) => {
- if (!err) {
- console.log('Received values of form: ', values);
- if (topicId !=undefined) {
- const editTopic = this.editTopic
- const editUrl = `/courses/${cid}/graduation_topics/${topicId}.json`
-
- let attachment_ids = undefined
- if (this.state.fileList) {
- attachment_ids = this.state.fileList.map(item => {
- return item.response ? item.response.id : item.id
- })
- }
- axios.put(editUrl, {
- graduation_topic:{
- ...values,
- province: values.city==undefined?"":values.city[0],
- city: values.city==undefined?"":values.city[1],
- },
- attachment_ids
- }).then((response) => {
- if (response.status == 200) {
- const { id } = response.data;
- if (id) {
- this.props.showNotification('保存成功!');
- this.props.history.push(`/courses/${cid}/graduation_topics/${this.state.left_banner_id}`);
- }
- }
- }).catch(function (error) {
- console.log(error);
- });
- } else {
- const url = `/courses/${cid}/graduation_topics.json`
- let attachment_ids = undefined
- if (this.state.fileList) {
- attachment_ids = this.state.fileList.map(item => {
- return item.response.id
- })
- }
-
- axios.post(url, {
- graduation_topic:{
- ...values,
- province: values.city==undefined?"":values.city[0],
- city: values.city==undefined?"":values.city[1],
- },
- attachment_ids,
- }).then((response) => {
- if (response.data) {
- const { id } = response.data;
- if (id) {
- this.props.showNotification('提交成功!');
- this.props.history.push(`/courses/${cid}/graduation_topics/${this.state.left_banner_id}`);
- }
- }
- })
- .catch(function (error) {
- console.log(error);
- });
- }
- } else {
- $("html").animate({ scrollTop: $('html').scrollTop() - 100 })
- }
- });
- }
-
- // 选择省市
- ChangeCity=(value, selectedOptions)=>{
- console.log(selectedOptions);
- }
-
- // 附件相关 START
- handleChange = (info) => {
- let fileList = info.fileList;
- this.setState({ fileList });
- }
- onAttachmentRemove = (file) => {
- confirm({
- title: '确定要删除这个附件吗?',
- okText: '确定',
- cancelText: '取消',
- // content: 'Some descriptions',
- onOk: () => {
- this.deleteAttachment(file)
- },
- onCancel() {
- console.log('Cancel');
- },
- });
- return false;
- }
- deleteAttachment = (file) => {
- console.log(file);
- let id=file.response ==undefined ? file.id : file.response.id
- const url = `/attachments/${id}.json`
- axios.delete(url, {
- })
- .then((response) => {
- if (response.data) {
- const { status } = response.data;
- if (status == 0) {
- console.log('--- success')
-
- this.setState((state) => {
- const index = state.fileList.indexOf(file);
- const newFileList = state.fileList.slice();
- newFileList.splice(index, 1);
- return {
- fileList: newFileList,
- };
- });
- }
- }
- })
- .catch(function (error) {
- console.log(error);
- });
- }
-
- // 附件相关 ------------ END
-
- changeTopicName=(e)=>{
- let num= 60 - parseInt(e.target.value.length);
- this.setState({
- addonAfter:num < 0 ? 0 : num
- })
- }
- render() {
- let {
- fileList,
- teacherList,
- topic_property_first,
- topic_property_second,
- topic_repeat,
- topic_source,
- topic_type,
- addonAfter,
- left_banner_id,
- course_name,
- left_banner_name
- } = this.state;
- const { current_user } = this.props
- const { getFieldDecorator } = this.props.form;
- let{ topicId,coursesId }=this.props.match.params
- console.log(this.props);
-
- const formItemLayout = {
- labelCol: {
- xs: { span: 24 },
- // sm: { span: 8 },
- sm: { span: 24 },
- },
- wrapperCol: {
- xs: { span: 24 },
- // sm: { span: 16 },
- sm: { span: 24 },
- },
- };
- const uploadProps = {
- width: 600,
- fileList,
- multiple: true,
- // https://github.com/ant-design/ant-design/issues/15505
- // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。
- // showUploadList: false,
- action: `${getUrl()}/api/attachments.json`,
- onChange: this.handleChange,
- onRemove: this.onAttachmentRemove,
- beforeUpload: (file) => {
- console.log('beforeUpload', file.name);
- const isLt150M = file.size / 1024 / 1024 < 150;
- if (!isLt150M) {
- message.error('文件大小必须小于150MB!');
- }
- return isLt150M;
- },
- };
- console.log("dfsf");
- console.log(this.props);
- return(
-
-
-
-
- {course_name}
- >
- {left_banner_name}
- >
- {topicId==undefined?"新建":"编辑"}
-
-
-
-
-
-
-
-
-
- )
- }
-}
-
-const WrappedGraduateTopicNew = Form.create({ name: 'topicPostWorksNew' })(GraduateTopicNew);
-// RouteHOC()
+import React,{ Component } from "react";
+
+import {
+ Form, Input, InputNumber, Switch, Radio,
+ Slider, Button, Upload, Icon, Rate, Checkbox, message,
+ Row, Col, Select, Modal,Cascader
+} from 'antd';
+import TPMMDEditor from '../../../tpm/challengesnew/TPMMDEditor';
+import axios from 'axios'
+import {getUrl} from 'educoder';
+import "../../common/formCommon.css"
+import '../style.css'
+import '../../css/Courses.css'
+import { WordsBtn, City } from 'educoder'
+// import City from './City'
+
+// import './board.css'
+// import { RouteHOC } from './common.js'
+
+const confirm = Modal.confirm;
+const $ = window.$
+const { Option } = Select;
+// 新建毕设选题
+// https://lanhuapp.com/web/#/item/project/board/detail?pid=a3bcd4b1-99ce-4e43-8ead-5b8b0a410807&project_id=a3bcd4b1-99ce-4e43-8ead-5b8b0a410807&image_id=c6d9b36f-7701-4035-afdb-62404681108c
+class GraduateTopicNew extends Component{
+ constructor(props){
+ super(props);
+
+ this.mdRef = React.createRef();
+
+ this.state = {
+ fileList: [],
+ boards: [],
+ teacherList:[],
+ topic_property_first:[],
+ topic_property_second:[],
+ topic_repeat:[],
+ topic_source:[],
+ topic_type:[],
+ attachments:undefined,
+ addonAfter:60,
+ left_banner_id:undefined,
+ course_name:undefined
+ }
+ }
+ // 获取老师列表
+ getTeacherList=()=>{
+ const cid = this.props.match.params.coursesId
+ let url=`/courses/${cid}/graduation_topics/new.json`;
+ axios.get((url)).then((result)=>{
+ if(result.status==200){
+ this.setState({
+ teacherList:result.data.teacher_list,
+ left_banner_id:result.data.left_banner_id,
+ course_name:result.data.course_name,
+ left_banner_name:result.data.left_banner_name,
+ topic_property_first:result.data.topic_property_first,
+ topic_property_second:result.data.topic_property_second,
+ topic_repeat:result.data.topic_repeat,
+ topic_source:result.data.topic_source,
+ topic_type:result.data.topic_type
+ })
+ console.log("sdfds");
+ console.log(this.props.current_user && this.props.current_user.user_id);
+ this.props.form.setFieldsValue({
+ tea_id:this.props.current_user && this.props.current_user.user_id
+ })
+ }
+ }).catch((error)=>{
+ console.log(error);
+ })
+ }
+ componentDidMount = () => {
+ //新建or编辑
+ let topicId=this.props.match.params.topicId;
+
+ if(topicId==undefined){
+ this.getTeacherList();
+ }else{
+ this.getEditInfo();
+
+ }
+ }
+ //编辑,信息显示
+ getEditInfo=()=>{
+ const cid = this.props.match.params.coursesId
+ let topicId=this.props.match.params.topicId
+ let url=`/courses/${cid}/graduation_topics/${topicId}/edit.json`;
+ axios.get((url)).then((result)=>{
+ if(result){
+ this.setState({
+ left_banner_id:result.data.left_banner_id,
+ course_name:result.data.course_name,
+ left_banner_name:result.data.left_banner_name,
+ teacherList:result.data.teacher_list,
+ topic_property_first:result.data.topic_property_first,
+ topic_property_second:result.data.topic_property_second,
+ topic_repeat:result.data.topic_repeat,
+ topic_source:result.data.topic_source,
+ topic_type:result.data.topic_type,
+ attachments:result.data.attachments,
+ addonAfter:20-parseInt(result.data.selected_data.name.length)
+ })
+ this.props.form.setFieldsValue({
+ tea_id:result.data.selected_data.tea_id,
+ name:result.data.selected_data.name,
+ city: [result.data.selected_data.province,result.data.selected_data.city],
+ topic_type:result.data.selected_data.topic_type || undefined,
+ topic_source:result.data.selected_data.topic_source || undefined,
+ topic_property_first:result.data.selected_data.topic_property_first || undefined,
+ topic_property_second:result.data.selected_data.topic_property_second || undefined,
+ source_unit:result.data.selected_data.source_unit,
+ topic_repeat:result.data.selected_data.topic_repeat || undefined
+ });
+ this.mdRef.current.setValue(result.data.selected_data.description)
+ const _fileList = result.data.attachments.map(item => {
+ return {
+ id: item.id,
+ uid: item.id,
+ name: item.title,
+ url: item.url,
+ status: 'done'
+ }
+ })
+ this.setState({ fileList: _fileList, cityDefaultValue: [result.data.selected_data.province,result.data.selected_data.city] })
+ }
+ }).catch((error)=>{
+ console.log(error);
+ })
+ }
+
+ handleSubmit = (e) => {
+ e.preventDefault();
+ const cid = this.props.match.params.coursesId
+ const topicId = this.props.match.params.topicId
+ // console.log(this.props);
+
+ this.props.form.validateFieldsAndScroll((err, values) => {
+ if (!err) {
+ console.log('Received values of form: ', values);
+ if (topicId !=undefined) {
+ const editTopic = this.editTopic
+ const editUrl = `/courses/${cid}/graduation_topics/${topicId}.json`
+
+ let attachment_ids = undefined
+ if (this.state.fileList) {
+ attachment_ids = this.state.fileList.map(item => {
+ return item.response ? item.response.id : item.id
+ })
+ }
+ axios.put(editUrl, {
+ graduation_topic:{
+ ...values,
+ province: values.city==undefined?"":values.city[0],
+ city: values.city==undefined?"":values.city[1],
+ },
+ attachment_ids
+ }).then((response) => {
+ if (response.status == 200) {
+ const { id } = response.data;
+ if (id) {
+ this.props.showNotification('保存成功!');
+ this.props.history.push(`/courses/${cid}/graduation_topics/${this.state.left_banner_id}`);
+ }
+ }
+ }).catch(function (error) {
+ console.log(error);
+ });
+ } else {
+ const url = `/courses/${cid}/graduation_topics.json`
+ let attachment_ids = undefined
+ if (this.state.fileList) {
+ attachment_ids = this.state.fileList.map(item => {
+ return item.response.id
+ })
+ }
+
+ axios.post(url, {
+ graduation_topic:{
+ ...values,
+ province: values.city==undefined?"":values.city[0],
+ city: values.city==undefined?"":values.city[1],
+ },
+ attachment_ids,
+ }).then((response) => {
+ if (response.data) {
+ const { id } = response.data;
+ if (id) {
+ this.props.showNotification('提交成功!');
+ this.props.history.push(`/courses/${cid}/graduation_topics/${this.state.left_banner_id}`);
+ }
+ }
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+ }
+ } else {
+ $("html").animate({ scrollTop: $('html').scrollTop() - 100 })
+ }
+ });
+ }
+
+ // 选择省市
+ ChangeCity=(value, selectedOptions)=>{
+ console.log(selectedOptions);
+ }
+
+ // 附件相关 START
+ handleChange = (info) => {
+ let fileList = info.fileList;
+ this.setState({ fileList });
+ }
+ onAttachmentRemove = (file) => {
+ confirm({
+ title: '确定要删除这个附件吗?',
+ okText: '确定',
+ cancelText: '取消',
+ // content: 'Some descriptions',
+ onOk: () => {
+ this.deleteAttachment(file)
+ },
+ onCancel() {
+ console.log('Cancel');
+ },
+ });
+ return false;
+ }
+ deleteAttachment = (file) => {
+ console.log(file);
+ let id=file.response ==undefined ? file.id : file.response.id
+ const url = `/attachments/${id}.json`
+ axios.delete(url, {
+ })
+ .then((response) => {
+ if (response.data) {
+ const { status } = response.data;
+ if (status == 0) {
+ console.log('--- success')
+
+ this.setState((state) => {
+ const index = state.fileList.indexOf(file);
+ const newFileList = state.fileList.slice();
+ newFileList.splice(index, 1);
+ return {
+ fileList: newFileList,
+ };
+ });
+ }
+ }
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+ }
+
+ // 附件相关 ------------ END
+
+ changeTopicName=(e)=>{
+ let num= 60 - parseInt(e.target.value.length);
+ this.setState({
+ addonAfter:num < 0 ? 0 : num
+ })
+ }
+ render() {
+ let {
+ fileList,
+ teacherList,
+ topic_property_first,
+ topic_property_second,
+ topic_repeat,
+ topic_source,
+ topic_type,
+ addonAfter,
+ left_banner_id,
+ course_name,
+ left_banner_name
+ } = this.state;
+ const { current_user } = this.props
+ const { getFieldDecorator } = this.props.form;
+ let{ topicId,coursesId }=this.props.match.params
+ // console.log(this.props);
+
+ const formItemLayout = {
+ labelCol: {
+ xs: { span: 24 },
+ // sm: { span: 8 },
+ sm: { span: 24 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ // sm: { span: 16 },
+ sm: { span: 24 },
+ },
+ };
+ const uploadProps = {
+ width: 600,
+ fileList,
+ multiple: true,
+ // https://github.com/ant-design/ant-design/issues/15505
+ // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。
+ // showUploadList: false,
+ action: `${getUrl()}/api/attachments.json`,
+ onChange: this.handleChange,
+ onRemove: this.onAttachmentRemove,
+ beforeUpload: (file) => {
+ console.log('beforeUpload', file.name);
+ const isLt150M = file.size / 1024 / 1024 < 150;
+ if (!isLt150M) {
+ message.error('文件大小必须小于150MB!');
+ }
+ return isLt150M;
+ },
+ };
+ // console.log("dfsf");
+ // console.log(this.props);
+ return(
+
+
+
+
+ {course_name}
+ >
+ {left_banner_name}
+ >
+ {topicId==undefined?"新建":"编辑"}
+
+
+
+
+
+
+
+
+
+ )
+ }
+}
+
+const WrappedGraduateTopicNew = Form.create({ name: 'topicPostWorksNew' })(GraduateTopicNew);
+// RouteHOC()
export default (WrappedGraduateTopicNew);
\ No newline at end of file
diff --git a/public/react/src/modules/courses/new/CoursesNew.js b/public/react/src/modules/courses/new/CoursesNew.js
index 0114f564c..b817136ed 100644
--- a/public/react/src/modules/courses/new/CoursesNew.js
+++ b/public/react/src/modules/courses/new/CoursesNew.js
@@ -459,6 +459,11 @@ class CoursesNew extends Component {
width: 280px;
margin-left: 10px;
}
+
+ .construction .ant-select-selection__placeholder, .ant-select-search__field__placeholder {
+ line-height: 28px;
+ z-index: 2000;
+ }
`}
@@ -641,7 +646,7 @@ class CoursesNew extends Component {