diff --git a/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js b/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js
index 472cf57b5..5d4a34f6f 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js
@@ -190,7 +190,7 @@ class CommonWorkAppraise extends Component{
+
{attachments.map((item,key)=>{
diff --git a/public/react/src/modules/courses/busyWork/CommonWorkList.js b/public/react/src/modules/courses/busyWork/CommonWorkList.js
index 28de13fe7..2243310a2 100644
--- a/public/react/src/modules/courses/busyWork/CommonWorkList.js
+++ b/public/react/src/modules/courses/busyWork/CommonWorkList.js
@@ -64,7 +64,9 @@ function buildColumns(that, student_works) {
key: 'id',
render: (text, record, index) => {
return (
-
{(that.state.page - 1) * PAGE_SIZE + index + 1}
+
+ {record.isMine == true ? '我' : (that.state.page - 1) * PAGE_SIZE + index + 1}
+
)},
}, {
title: '姓名',
@@ -78,7 +80,7 @@ function buildColumns(that, student_works) {
overflow: 'hidden',
textOverflow: 'ellipsis',
whiteSpace: 'nowrap',
- maxWidth: '98px'
+ width: '98px'
}} title={text}>
{/*
*/}
@@ -97,7 +99,7 @@ function buildColumns(that, student_works) {
{record.student_id}
),
@@ -232,7 +234,7 @@ function buildColumns(that, student_works) {
+ isNiPing ? `你的评阅分数:${record.student_score}分` :
{record.student_comment_count &&
{`${record.student_comment_count}名学生进行了匿评`}
}
有效平均分:{record.student_score}分
@@ -547,7 +549,7 @@ class CommonWorkList extends Component{
StudentData=isStudent ? [{ id, user_name, user_login, student_id, group_name, work_status, update_time, teacher_score, teaching_asistant_score, student_score,
ultimate_score, work_score, student_comment_count, appeal_all_count, appeal_deal_count,
late_penalty, absence_penalty, appeal_penalty,
- work_group: '' }] : []
+ work_group: '', isMine: true }] : []
}
let params = this._getRequestParams()
let exportUrl = `/api/homework_commons/${workId}/works_list.zip?${queryString.stringify(params)}`;
diff --git a/public/react/src/modules/courses/common/courseMessage.css b/public/react/src/modules/courses/common/courseMessage.css
index c219df018..fede51ded 100644
--- a/public/react/src/modules/courses/common/courseMessage.css
+++ b/public/react/src/modules/courses/common/courseMessage.css
@@ -40,6 +40,7 @@
.course-message .comment_item_cont:last-child {
/* 作品评阅需要 */
border-bottom: none;
+ padding-bottom: 0px;
}
.course-message .memoMore {
diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js
index d997592ef..9c6254cbd 100644
--- a/public/react/src/modules/courses/members/studentsList.js
+++ b/public/react/src/modules/courses/members/studentsList.js
@@ -46,24 +46,30 @@ const buildColumns = (that) => {
key: 'login',
align:'center',
className:"color-grey-6",
- // render: (name, record) => {
- // return {name}
- // }
+ render: (name, record) => {
+ return {name}
+ }
}, {
title: '姓名',
dataIndex: 'name',
key: 'name',
align:'center',
+ width:"10%",
className:"color-grey-6",
render: (name, record) => {
- return {name}
+ return {name}
}
}, {
title: '学号',
dataIndex: 'student_id',
key: 'student_id',
align:'center',
- className:"color-grey-6"
+ className:"color-grey-6",
+ render: (student_id, record) => {
+ return {student_id}
+ }
}, {
title: '分班',
dataIndex: 'course_group_name',
diff --git a/public/react/src/modules/courses/poll/PollNew.js b/public/react/src/modules/courses/poll/PollNew.js
index 7b936a0b6..392acf57c 100644
--- a/public/react/src/modules/courses/poll/PollNew.js
+++ b/public/react/src/modules/courses/poll/PollNew.js
@@ -1,2844 +1,2844 @@
-import React, {Component} from "react";
-import {Form, Input, Tooltip, Checkbox, Radio, Select, message, Modal, Button} from 'antd'
-import {WordsBtn, ActionBtn} from 'educoder'
-import '../css/members.css'
-import "../common/formCommon.css"
-
-import './pollStyle.css'
-import '../css/Courses.css'
-import axios from 'axios'
-import moment from "../new/CoursesNew";
-import Modals from "../../modals/Modals";
-
-
-const TextArea = Input.TextArea
-const RadioGroup = Radio.Group
-const CheckboxGroup = Checkbox.Group
-const Option = Select.Option;
-const maps = {1: "未发布", 2: "提交中", 3: "已截止"}
-const confirm = Modal.confirm;
-
-class PollNew extends Component {
- // 问卷新建和编辑
- //
- // * addonAfter 字数限制
- // * q_counts 题目总数
- // * mysingles 单选题数量
- // * mydoubles 多选题数量
- // * mymainsint 主观题数量
- // * adddom 添加编辑的数据 页面点击新增题目
- // * editentry 编辑条目 新增的题目点击到条目中
- //* questionnair 问卷是否存在 默认不存在
- // *
-
- constructor(props) {
- super(props);
- this.state = {
- visible: false,
- poll_questions: [],
- user_permission: "",
- addonAfter: 60,
- addonAftertwo: 100,
- mysingles: 0,
- mydoubles: 0,
- mymainsint: 0,
- adddom: [],
- editentry: [],
- questionnair: false,
- polls_name: undefined,
- polls_nametest: "",
- polls_description: "",
- polls_descriptiontest: "",
- storagedesc:"",
- storagedesctwo:"",
- coursesId: "",
- pollid: undefined,
- polls_status: undefined,
- q_countst: 0,
- Newedit: true,
- Insertposition: undefined,
- Modalstype: false,
- mysave: false,
- readOnlys: "readOnly",
- problemtopic: null,
- problemtopicbool: false,
- newoption: false,
- cancellation: false,
- }
- // console.log("试卷新建和编辑");
- // console.log(JSON.stringify(props));
-
- }
-
- changeTopicName = (e) => {
- let num = 60 - parseInt(e.target.value.length);
- this.setState({
- addonAfter: num < 0 ? 0 : num
- })
- this.setState({
- polls_nametest: e.target.value
- })
- }
-
-
- changeTopicNametwo = (e) => {
- // console.log("获取的值" + e.target.value);
- let num = 100 - parseInt(e.target.value.length);
- this.setState({
- addonAftertwo: num < 0 ? 0 : num
- })
- this.setState({
- polls_descriptiontest: e.target.value
- })
- }
-
- // 初始化数据
- componentDidMount = () => {
- console.log("componentDidMount 50")
- if (this.props.match.params.news !== undefined) {
- if (this.props.match.params.news === "new") {
- this.state.Newedit === true;
- this.setState({
- Newedit: true,
- mysave: true,
- readOnlys: "",
- cancellation: true,
- })
- } else {
- this.Initializatio_data();
- this.state.Newedit === false;
- this.setState({
- Newedit: false,
- mysave: false,
- readOnlys: "readOnly",
- })
- }
- }
-
-
- // this.getPollInfo();
-
- }
- //获取权限
- // getPollInfo(){
- // // console.log(this.props.match);
- // let pollId=this.props.match.params.pollId;
- // let url=`/polls/${pollId}/common_header.json`
- // axios.get(url).then((result)=>{
- // if(result.status==200){
- // this.setState({
- // pollDetail:result.data,
- // user_permission:result.data.user_permission
- // })
- // }
- // }).catch((error)=>{
- // console.log(error);
- // })
- // }
- //初始化请求网络
- Initializatio_data = () => {
- console.log("Initializatio_data 582")
- //课堂id
- let coursesId = this.props.match.params.coursesId;
- //时间id
- let pollid = this.props.match.params.pollid;
- console.log(pollid);
- // let coursesId = 557;
- if (pollid === undefined) {
- // console.log("没有问卷新建问卷~~~")
- // let coursesId=this.props.match.params.coursesId;
- // // to={`/courses/${coursesId}/polls/new`}
- //
- // const urll = `/courses/${coursesId}/polls/new.json`
- // axios.get(urll).then((result) => {
- // if (result.status === 200) {
- // console.log(urll)
- // console.log("问卷新建成功")
- // console.log(JSON.stringify(result))
- // // var path=`/courses/${coursesId}/polls/new`;
- // //
- // // this.props.history.push({ pathname: path, state: { } });
- // }
- // }).catch((error) => {
- // console.log(error)
- // })
-
- // const urlls = `/courses/${coursesId}/polls.json`
- // axios.post(urlls,{
- // polls_name: "这是标题",
- // polls_description:"这是标题须知"
- // }).then((result)=>{
- // console.log("创建问卷++++++")
- // console.log(result)
- // try {
- // if(result.data.status===0){
- // console.log("创建问卷")
- // console.log(JSON.stringify(result.data))
- // }
- // }catch (e) {
- //
- // }
- //
- // })
- //没有问卷
- this.setState({
- projects: [],
- polls_name: "",
- polls_description: "",
- poll_questions: [],
- question_types: [],
- pollid: undefined,
- mysingles: 0,
- mydoubles: 0,
- mymainsint: 0,
- polls_nametest: "",
- polls_descriptiontest: "",
- coursesId: 0,
- questionnair: false
- })
- } else {
- const url = `/polls/${pollid}/edit.json`;
- axios.get(url).then((result) => {
- if (result !== undefined)
-
- // console.log("有问卷~~~")
- // if (result.status === 200) {
- // console.log(JSON.stringify(result.data))
- this.props.form.setFieldsValue({
- polls_nametest: result.data.poll.polls_name,
- polls_descriptiontest: result.data.poll.polls_description,
- });
- this.setState({
- projects: result.data,
- pollid: pollid,
- polls_status: result.data.poll.polls_status,
- polls_name: result.data.poll.polls_name,
- polls_description: result.data.poll.polls_description,
- poll_questions: result.data.poll_questions,
- question_types: result.data.question_types,
- mysingles: result.data.question_types.q_singles,
- mydoubles: result.data.question_types.q_doubles,
- mymainsint: result.data.question_types.q_mains,
- polls_nametest: result.data.poll.polls_name,
- polls_descriptiontest: result.data.poll.polls_description,
- questionnair: true,
- })
- console.log(this.state.polls_nametest)
- console.log(this.state.polls_descriptiontest)
- // }
- }).catch((error) => {
- console.log(error)
- })
- }
-
- }
-
- //重新获取数据
- thisinitializationdatanew = () => {
- var pollidsy = null;
- if (this.state.pollid !== undefined) {
- pollidsy = this.state.pollid;
- if (pollidsy === null || pollidsy === undefined) {
- pollidsy = this.props.match.params.pollid;
- }
- }
-
- if (pollidsy === null || pollidsy === undefined) {
- return
- }
-
- const url = `/polls/${pollidsy}/edit.json`;
- axios.get(url).then((result) => {
- if (result !== undefined)
-
- // console.log("有问卷~~~")
- // if (result.status === 200) {
- // console.log(JSON.stringify(result.data))
- this.setState({
- projects: result.data,
- pollid: pollidsy,
- polls_status: result.data.poll.polls_status,
- polls_name: result.data.poll.polls_name,
- polls_description: result.data.poll.polls_description,
- poll_questions: result.data.poll_questions,
- question_types: result.data.question_types,
- mysingles: result.data.question_types.q_singles,
- mydoubles: result.data.question_types.q_doubles,
- mymainsint: result.data.question_types.q_mains,
- polls_nametest: result.data.poll.polls_name,
- polls_descriptiontest: result.data.poll.polls_description,
- questionnair: true,
- })
-
- // }
- }).catch((error) => {
- console.log(error)
- })
- }
- //新建问卷
- newword = () => {
- if (this.state.polls_nametest === undefined || this.state.polls_nametest === "") {
- this.props.showNotification(`请输入标题`);
- return
- }
- let coursesId = this.props.match.params.coursesId;
- const urlls = `/courses/${coursesId}/polls.json`
- axios.post(urlls, {
- polls_name: this.state.polls_nametest,
- polls_description: this.state.polls_descriptiontest
- }).then((result) => {
- if (result.data.status === 0) {
- this.state.Newedit === false;
- // this.props.showNotification(`试卷创建成功`);
- this.setState({
- pollid: result.data.data.id,
- Newedit: false,
- })
- this.props.history.push(`/courses/${this.props.match.params.coursesId}/polls/${result.data.data.id}/detail?tab=2`)
- }
- })
- }
- //添加单选题目
- addmysingles = () => {
-
- if (this.state.newoption === true) {
- this.setState({
- newoption: false
- })
- }
-
- var Insertposition = this.state.poll_questions.length;
- // console.log(JSON.stringify(this.state.poll_questions));
- for (var i = 0; i < this.state.poll_questions.length; i++) {
- if (this.state.poll_questions[i].question.question_type === 1) {
- Insertposition = i;
- }
-
- }
- this.addMytopic(1, this.state.pollid, Insertposition, false, 0);
- // }
- }
-
- //添加多选题目
- addmydoubles = () => {
- console.log("addmymainsint 70")
- if (this.state.newoption === true) {
- this.setState({
- newoption: false
- })
- }
-
- var Insertposition = this.state.poll_questions.length;
- // console.log(JSON.stringify(this.state.poll_questions));
- for (var i = 0; i < this.state.poll_questions.length; i++) {
- if (this.state.poll_questions[i].question.question_type === 2) {
- Insertposition = i;
- }
-
-
- }
- this.addMytopic(2, this.state.pollid, Insertposition, false, 0);
-
- // }
- }
-
- //添加主观题目
- addmymainsint = () => {
-
- var Insertposition = this.state.poll_questions.length;
- // console.log(JSON.stringify(this.state.poll_questions));
- for (var i = 0; i < this.state.poll_questions.length; i++) {
- if (this.state.poll_questions[i].question.question_type === 3) {
- Insertposition = i;
- }
-
-
- }
-
- this.addMytopic(3, this.state.pollid, Insertposition, false, 0);
- // }
- }
-
- //编辑方法
- adddomedit = (object) => {
- console.log("adddomedit 76");
- if (this.state.q_countst > 0) {
- this.props.showNotification(`不能同时编辑两题`);
-
- return;
- }
- var anserbool = false;
- this.setState({
- q_countst: 1,
- })
- window.scrollTo(0, this.refs.targetElement.offsetTop)
- let {adddom} = this.state;
- // var arr =new Object(objects);
- // console.log(arr)
- // adddom.push(arr);
- var question = {};
- var Insertposition = this.state.poll_questions.length;
- if (object.question.question_type === 1) {
- var answers = [];
- var questiontwo = {};
- ///////////////////////////daying
- for (var y = 0; y < object.question.answers.length; y++) {
- var answerstwo;
- if (object.question.answers[y].answer_text === "其他") {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- anserbool = true;
- } else {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- }
- answers.push(answerstwo);
-
-
- }
- // 插入单选题
- questiontwo = {
- // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 1,
- "question_title": object.question.question_title,
- "question_type": 1,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- adddom.push(question);
- for (var i = 0; i < this.state.poll_questions.length; i++) {
- if (this.state.poll_questions[i].question.question_type === 1) {
- Insertposition = i;
- }
- }
- } else if (object.question.question_type === 2) {
- //插入多选题
- var answers = [];
- var questiontwo = {};
-
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- anserbool = true;
- } else {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- }
- answers.push(answerstwo);
- }
- questiontwo = {
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 2,
- "question_title": object.question.question_title,
- "question_type": 2,
- "max_choices": object.question.max_choices,
- "min_choices": object.question.min_choices,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- adddom.push(question);
- for (var i = 0; i < this.state.poll_questions.length; i++) {
- if (this.state.poll_questions[i].question.question_type === 2) {
- Insertposition = i;
- }
- }
- } else if (object.question.question_type === 3) {
- //插入主观题
- var answers = [];
- var questiontwo = {};
-
- if (object.question.answers.length > 0) {
- for (var y = 0; y < object.question.answers.length; y++) {
- var answerstwo;
- if (object.question.answers[y].answer_text === "其他") {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- } else {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- }
- answers.push(answerstwo);
- }
- }
- questiontwo = {
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 3,
- "question_title": object.question.question_title,
- "question_type": 3,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- adddom.push(question);
- for (var i = 0; i < this.state.poll_questions.length; i++) {
- if (this.state.poll_questions[i].question.question_type === 3) {
- Insertposition = i;
- }
- }
- }
- this.setState({
- adddom: adddom,
- newoption: anserbool,
- Insertposition: Insertposition
- })
-
- }
-
- //新增添加题目 有new
- addMytopic = (index, pollid, Insertposition, Whether, id) => {
- //Whether 是否插入
- // console.log("id")
- // console.log(id)
- // console.log("Whether")
- // console.log(Whether)
- console.log("addMytopic 90")
- if (this.state.q_countst > 0) {
- this.props.showNotification(`不能同时编辑两题`);
-
- return;
- }
- this.state.Insertposition = Insertposition;
- var Whethername = null;
- if (Whether === true) {
- Whethername = id;
- }
- this.setState({
- Insertposition: Insertposition,
- q_countst: 1,
- })
- window.scrollTo(0, this.refs.targetElement.offsetTop)
- var arrr = this.state.adddom;
- let newarrr = [...arrr];
-
- var arr = this.state.poll_questions;
- let newarr = [...arr];
-
- if (newarr.length > 0) {
- if (index === 1) {
- // 插入单选题
- // console.log(this.state.poll_questions[newarr.length - 1].question.id);
- var question = {}
- var questiontwo = {
- // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
- "id": this.state.poll_questions[newarr.length - 1].question.id + 1,
- "is_necessary": 1,
- "question_number": 1,
- "question_title": "",
- "question_type": 1,
- "new": "new",
- "answers": [
- {"answer_id": 1, "answer_position": 1, "answer_text": ""},
- {"answer_id": 2, "answer_position": 2, "answer_text": ""},
- {"answer_id": 3, "answer_position": 3, "answer_text": ""},
- {"answer_id": 4, "answer_position": 4, "answer_text": ""},
- // {"answer_id": 5, "answer_position": 5, "answer_text": "其他"},
- ]
- };
- question = {"question": questiontwo};
- newarrr.push(question);
-
- this.setState({
- adddom: newarrr,
- problemtopic: Whethername,
- problemtopicbool: Whether,
- })
-
- } else if (index === 2) {
- //插入多选题
- var question = {}
- var questiontwo = {
- "id": this.state.poll_questions[newarr.length - 1].question.id + 1,
- "is_necessary": 1,
- "question_number": 2,
- "question_title": "",
- "question_type": 2,
- "max_choices": 0,
- "min_choices": 0,
- "new": "new",
- "answers": [
- {"answer_id": 1, "answer_position": 1, "answer_text": ""},
- {"answer_id": 2, "answer_position": 2, "answer_text": ""},
- {"answer_id": 3, "answer_position": 3, "answer_text": ""},
- {"answer_id": 4, "answer_position": 4, "answer_text": ""},
- // {"answer_id": 5, "answer_position": 5, "answer_text": "其他"},
- ]
- };
- question = {"question": questiontwo};
- newarrr.push(question);
-
- this.setState({
- adddom: newarrr,
- problemtopic: Whethername,
- problemtopicbool: Whether,
- })
-
- } else if (index === 3) {
- //插入主观题
- // console.log(this.state.poll_questions[newarr.length - 1].question.id);
- var question = {}
- var questiontwo = {
- "id": this.state.poll_questions[newarr.length - 1].question.id + 1,
- "is_necessary": 1,
- "question_number": 3,
- "question_title": "",
- "question_type": 3,
- "new": "new",
- "answers": []
- };
- question = {"question": questiontwo};
- newarrr.push(question);
- this.setState({
- adddom: newarrr,
- problemtopic: Whethername,
- problemtopicbool: Whether,
- })
-
- }
- } else {
- /////上面视图全部删除后 要加载的
- if (index === 1) {
- // 插入单选题
- var id;
- try {
- id = this.state.poll_questions[newarr.length - 1].question.id + 1
- } catch (e) {
- id = 1;
- }
- var questiontwo = {
- // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
- "id": id,
- "is_necessary": 1,
- "question_number": 1,
- "question_title": "",
- "question_type": 1,
- "new": "new",
- "answers": [
- {"answer_id": 1, "answer_position": 1, "answer_text": ""},
- {"answer_id": 2, "answer_position": 2, "answer_text": ""},
- {"answer_id": 3, "answer_position": 3, "answer_text": ""},
- {"answer_id": 4, "answer_position": 4, "answer_text": ""},
- // {"answer_id": 5, "answer_position": 5, "answer_text": "其他"},
- ]
- };
- question = {"question": questiontwo};
- newarrr.push(question);
-
- this.setState({
- adddom: newarrr,
- problemtopic: Whethername,
- problemtopicbool: Whether,
- })
-
- } else if (index === 2) {
- //插入多选题
- var id;
- try {
- id = this.state.poll_questions[newarr.length - 1].question.id + 1
- } catch (e) {
- id = 1;
- }
- var questiontwo = {
- "id": id,
- "is_necessary": 1,
- "question_number": 2,
- "question_title": "",
- "question_type": 2,
- "max_choices": 0,
- "min_choices": 0,
- "new": "new",
- "answers": [
- {"answer_id": 1, "answer_position": 1, "answer_text": ""},
- {"answer_id": 2, "answer_position": 2, "answer_text": ""},
- {"answer_id": 3, "answer_position": 3, "answer_text": ""},
- {"answer_id": 4, "answer_position": 4, "answer_text": ""},
- // {"answer_id": 5, "answer_position": 5, "answer_text": "其他"},
- ]
- };
- question = {"question": questiontwo};
- newarrr.push(question);
-
- this.setState({
- adddom: newarrr,
- problemtopic: Whethername,
- problemtopicbool: Whether,
- })
-
- } else if (index === 3) {
- //插入主观题
- var id;
- try {
- id = this.state.poll_questions[newarr.length - 1].question.id + 1
- } catch (e) {
- id = 1;
- }
- var questiontwo = {
- "id": id,
- "is_necessary": 1,
- "question_number": 3,
- "question_title": "",
- "question_type": 3,
- "new": "new",
- "answers": []
- };
- question = {"question": questiontwo};
- newarrr.push(question);
- this.setState({
- adddom: newarrr,
- problemtopic: Whethername,
- problemtopicbool: Whether,
- })
- }
- }
- }
-
- //删除指定条目
- deleteadddom = (indexo) => {
- console.log("deleteadddom 259")
- var arr = this.state.adddom;
- let newarr = [...arr];
-
- newarr.splice(indexo, 1);
- this.setState({
- adddom: newarr,
- q_countst: 0,
- problemtopic: null,
- problemtopicbool: false,
- })
- }
- //保存并继续
- //保存并继续,即提交本题的新建并继续创建一个相同的题(该新题处于编辑模式,题目和选项不要清空)
- deleteadddomtwo = (indexo, object) => {
- var thiss = this;
- this.setState({
- q_countst: 1,
- })
- var poll_questionslength = this.state.poll_questions.length;
- // console.log("deleteadddomtwo|||||||||||||||||||||||||||||||||||||||||\\");
- // console.log(indexo);
- // console.log(object);
- // console.log(object.question.question_type);
- let arr = this.state.adddom;
- let arrpoll = this.state.poll_questions;
- let newarr = [...arr];
- let newarrpoll = [...arrpoll];
-
- //选项内容不能为空
- let max = 0;
- let maxtie = newarr[indexo].question.answers.length;
- for (var k = 0; k < newarr[indexo].question.answers.length; k++) {
- try {
- if (newarr[indexo].question.answers[k].answer_text != undefined) {
- if (newarr[indexo].question.answers[k].answer_text === "") {
- max = max + 1;
- }
- }
- } catch (e) {
- console.log("PollNew281")
- console.log(e)
- }
- }
- if (newarr[indexo].question.question_title === "") {
- this.props.showNotification(`题目不能为空`);
-
- return
- }
- if (max > 0) {
- if (object.question.question_type === 1) {
- this.props.showNotification(`选项内容不能为空`);
-
- return
- } else if (object.question.question_type === 2) {
- this.props.showNotification(`选项内容不能为空`);
-
- return
- }
-
- }
- if (maxtie < 2) {
- if (object.question.question_type === 1) {
- this.props.showNotification(`选项不能少于2个!`);
-
- return
- } else if (object.question.question_type === 2) {
- this.props.showNotification(`选项不能少于2个!`);
-
- return
- }
-
-
- }
-
- if (object.question.question_type === 2) {
- if (object.question.max_choices > 0) {
- if (object.question.min_choices < 2) {
- this.props.showNotification(`可选最小不能少于2个`);
-
- return;
-
- }
- }
-
- }
- if (object.question.new === "new") {
- // 根据数组里面的new 来确定是否是新增还是 修改
- //添加道数组上
- //不能共用数组 所以自己写个新数组 然后push 上面卷子中
- var question = {};
- if (object.question.question_type === 1) {
-
- var questiontwo = {};
- var other = [];
- var option = [];
- var answerstwos = [];
- var answerstwoss = [];
- ///////////////////////////daying
- // 这个是装选项和其他的
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- other.push(object.question.answers[y].answer_text);
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- option.push(object.question.answers[y].answer_text)
- answerstwoss.push(datatwo);
- }
-
-
- }
-
- var arrc = option.concat(other);
- var answers = answerstwoss.concat(answerstwos);
- // 插入单选题
- // var id
- // try {
- // id = newarrpoll[newarrpoll.length - 1].question.id + 1;
- // } catch (e) {
- // id = 1;
- // }
- questiontwo = {
- // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
- "id": null,
- "is_necessary": object.question.is_necessary,
- "question_number": 1,
- "question_title": object.question.question_title,
- "question_type": 1,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- var insindex = null;
- // if (poll_questionslength !== thiss.state.Insertposition) {
- // insindex = newarrpoll[thiss.state.Insertposition].question.id;
- // }
- if (this.state.problemtopicbool === true) {
- insindex = this.state.problemtopic;
- }
- this.createquestionsandanswers(object, 1, arrc, null, 0, 0, insindex);
- // newarrpoll.push(question);
- newarrpoll.splice(thiss.state.Insertposition, 0, question);
-
- } else if (object.question.question_type === 2) {
- //插入多选题
- if (object.question.max_choices < object.question.min_choices) {
- this.props.showNotification(`可选的最大限制不能小于最小限制`);
-
- return;
- }
-
- var questiontwo = {};
- var other = [];
- var option = [];
- var answerstwos = [];
- var answerstwoss = [];
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- other.push(object.question.answers[y].answer_text);
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- option.push(object.question.answers[y].answer_text)
- answerstwoss.push(datatwo);
- }
- }
- var arrc = option.concat(other);
- var answers = answerstwoss.concat(answerstwos);
- // var id
- // try {
- // id = newarrpoll[newarrpoll.length - 1].question.id + 1;
- // } catch (e) {
- // id = 1;
- // }
- questiontwo = {
- "id": null,
- "is_necessary": object.question.is_necessary,
- "question_number": 2,
- "question_title": object.question.question_title,
- "question_type": 2,
- "max_choices": object.question.max_choices,
- "min_choices": object.question.min_choices,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- var insindex = null;
- if (this.state.problemtopicbool === true) {
- insindex = this.state.problemtopic;
- }
- this.createquestionsandanswers(object, 2, arrc, null, object.question.max_choices, object.question.min_choices, insindex);
- //插入多选题
- // if (object.question.max_choices > arrc.length) {
- // // console.log("选择题的最大可选项不能大于选项数")
- // this.props.showNotification(`选择题的最大可选项不能大于选项数`);
- //
- // return;
- // }
- // if (object.question.min_choices === 0) {
- // // console.log("选择题的最大可选项不能小于2项目")
- // this.props.showNotification(`选择题的最大可选项不能小于2项目`);
- //
- // return;
- //
- // }
- // newarrpoll.push(question);
- newarrpoll.splice(thiss.state.Insertposition, 0, question);
- } else if (object.question.question_type === 3) {
- //插入主观题
- var answers = [];
- var questiontwo = {};
- var answerstwos = [];
- var answerstwoss = [];
- if (object.question.answers.length > 0) {
- for (var y = 0; y < object.question.answers.length; y++) {
- var answerstwo;
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- answerstwoss.push(datatwo);
- }
- }
- }
-
- answers = answerstwoss.concat(answerstwos);
- // var id
- // try {
- // id = newarrpoll[newarrpoll.length - 1].question.id + 1;
- // } catch (e) {
- // id = 1;
- // }
- questiontwo = {
- "id": null,
- "is_necessary": object.question.is_necessary,
- "question_number": 3,
- "question_title": object.question.question_title,
- "question_type": 3,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- // var insindex = null;
- // if (poll_questionslength !== thiss.state.Insertposition) {
- // insindex = newarrpoll[thiss.state.Insertposition].question.id;
- // }
- //主观题不需要可选选项
- var insindex = null;
- if (this.state.problemtopicbool === true) {
- insindex = this.state.problemtopic;
- }
- this.createquestionsandanswers(object, 3, null, null, 0, 0, insindex);
- // newarrpoll.push(question);
- newarrpoll.splice(thiss.state.Insertposition, 0, question);
- }
- //////////////////////////////////////////////////////////////////////////////////////////////////// 上面是新增
- } else {
- ///////////////////////////////////////////////////////////////////////////////////////////////////修改点了编辑
- console.log("点了编辑")
- var uuk = -1
- //这个地方判断 点了编辑上面题目又把他删除了 保存的时候就只能是插入新增了
- for (var uk = 0; uk < newarrpoll.length; uk++) {
- if (object.question.id === newarrpoll[uk].question.id) {
- uuk = uk;
- }
- }
-
-
- var question = {};
- if (object.question.question_type === 1) {
- var questiontwo = {};
- var other = [];
- var option = [];
- var answerstwos = [];
- var answerstwoss = [];
- ///////////////////////////daying
- //这个装选项和其他的
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- other.push(object.question.answers[y].answer_text);
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- option.push(object.question.answers[y].answer_text)
- answerstwoss.push(datatwo);
- }
-
-
- }
- var arrc = option.concat(other);
- var answers = answerstwoss.concat(answerstwos);
- // 插入单选题
- questiontwo = {
- // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 1,
- "question_title": object.question.question_title,
- "question_type": 1,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- if (uuk !== -1) {
- // console.log("修改")
- this.edittotheserver(object, 1, arrc, null, 0, 0);
- newarrpoll.splice(uuk, 1, question);
- } else {
- // console.log("他原来的删除掉了")
- this.createquestionsandanswers(object, 1, arrc, null, 0, 0, object.question.id);
- newarrpoll.push(question);
- }
- newarr[indexo].question.new = "new"
- // console.log(newarrpoll)
- } else if (object.question.question_type === 2) {
- //插入多选题
-
- if (object.question.max_choices < object.question.min_choices) {
- this.props.showNotification('可选的最大限制不能小于最小限制!');
-
- return;
- }
- var questiontwo = {};
- var other = [];
- var option = [];
- var answerstwos = [];
- var answerstwoss = [];
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- other.push(object.question.answers[y].answer_text);
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- option.push(object.question.answers[y].answer_text)
- answerstwoss.push(datatwo);
- }
- }
- var arrc = option.concat(other);
- var answers = answerstwoss.concat(answerstwos);
- questiontwo = {
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 2,
- "question_title": object.question.question_title,
- "question_type": 2,
- "max_choices": object.question.max_choices,
- "min_choices": object.question.min_choices,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- //插入多选题
- // if (object.question.max_choices > arrc.length) {
- // // console.log("选择题的最大可选项不能大于答案数")
- // this.props.showNotification('选择题的最大可选项不能大于选项数!');
- //
- // return;
- // }
- // if (object.question.min_choices === 0) {
- // // console.log("选择题的最大可选项不能小于2项目")
- // this.props.showNotification('选择题的最大可选项不能小于2项目!');
- //
- // return;
- //
- // }
- if (uuk !== -1) {
- console.log("修改")
- this.edittotheserver(object, 2, arrc, null, object.question.max_choices, object.question.min_choices);
- newarrpoll.splice(uuk, 1, question);
- } else {
- console.log("删除")
- this.createquestionsandanswers(object, 2, arrc, null, object.question.max_choices, object.question.min_choices, object.question.id);
- newarrpoll.push(question);
- }
- console.log(newarrpoll)
- newarr[indexo].question.new = "new"
- } else if (object.question.question_type === 3) {
- //插入主观题
- var answers = [];
- var questiontwo = {};
-
- if (object.question.answers.length > 0) {
- for (var y = 0; y < object.question.answers.length; y++) {
- var answerstwo;
- if (object.question.answers[y].answer_text === "其他") {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- } else {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- }
- answers.push(answerstwo);
- }
- }
- questiontwo = {
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 3,
- "question_title": object.question.question_title,
- "question_type": 3,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
-
- if (uuk !== -1) {
- console.log("修改")
- this.edittotheserver(object, 3, null, null, 0, 0);
- newarrpoll.splice(uuk, 1, question);
- } else {
- console.log("删除")
- this.createquestionsandanswers(object, 3, null, null, 0, 0, object.question.id);
- newarrpoll.push(question);
- }
- console.log(newarrpoll)
- newarr[indexo].question.new = "new"
- }
-
- }
-
-
- //添加到上面列表中
- //改变题目总数
- if (object.question.question_type === 1) {
- //单选题
- this.state.mysingles = this.state.mysingles + 1;
- } else if (object.question.question_type === 2) {
- //多选题
- this.state.mydoubles = this.state.mydoubles + 1;
- } else if (object.question.question_type === 3) {
- //主观题
- this.state.mymainsint = this.state.mymainsint + 1;
-
- }
- this.setState({
- // poll_questions: newarrpoll,
- adddom: newarr,
- problemtopic: null,
- problemtopicbool: false,
- // mysingles: this.state.mysingles,
- // mydoubles: this.state.mydoubles,
- // mymainsint: this.state.mymainsint
- })
-
- }
-
-
- //保存 后期可以考虑和保存并继续 合并
- //保存,即完成新建并退出本题编辑
- // indexo 第几个数组
- //object 单个数组数据
- deleteadddomthree = (indexo, object) => {
- // console.log("deleteadddom 349")
- var thiss = this;
- let arr = this.state.adddom;
- let arrpoll = this.state.poll_questions;
- let newarr = [...arr];
- let newarrpoll = [...arrpoll];
- var poll_questionslength = this.state.poll_questions.length; //获取单前问题最大长度
- //选项内容不能为空
- let max = 0;
- let maxtie = newarr[indexo].question.answers.length;
- //判断选项值是否不为空
- for (var k = 0; k < newarr[indexo].question.answers.length; k++) {
- try {
- if (newarr[indexo].question.answers[k].answer_text != undefined) {
- if (newarr[indexo].question.answers[k].answer_text === "") {
- max = max + 1;
- }
- }
- } catch (e) {
- // console.log("PollNew281")
- // console.log(e)
- }
- }
- if (newarr[indexo].question.question_title === "") {
- this.props.showNotification('题目不能为空!');
- return
- }
- if (max > 0) {
- if (object.question.question_type === 1) {
- this.props.showNotification('选项内容不能为空!');
- return
- } else if (object.question.question_type === 2) {
- this.props.showNotification('选项内容不能为空!');
- return
- }
-
- }
- if (maxtie < 2) {
- if (object.question.question_type === 1) {
- this.props.showNotification('选项不能少于2个!');
- return
- } else if (object.question.question_type === 2) {
- this.props.showNotification('选项不能少于2个!');
- return
- }
-
-
- }
-
- if (object.question.question_type === 2) {
- if (object.question.max_choices > 0) {
- if (object.question.min_choices < 2) {
- this.props.showNotification(`可选最小不能少于2个`);
- return;
- }
- }
- }
- if (object.question.new === "new") {
- ///////////////////////////////////////////////////////////////////新增模式
- // 根据数组里面的new 来确定是否是新增还是 修改
- //添加道数组上
- //不能共用数组 所以自己写个新数组 然后push 上面卷子中
- var question = {};
- if (object.question.question_type === 1) {
- var questiontwo = {};
- var other = [];
- var option = [];
- var answerstwos = [];
- var answerstwoss = [];
- ///////////////////////////daying
- // 这个是装选项和其他的
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- other.push(object.question.answers[y].answer_text);
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- option.push(object.question.answers[y].answer_text)
- answerstwoss.push(datatwo);
- }
- }
- var arrc = option.concat(other);
- var answers = answerstwoss.concat(answerstwos);
- // 插入单选题'
- // var id;
- // try {
- // id = newarrpoll[newarrpoll.length - 1].question.id + 1
- // } catch (e) {
- // id = 1;
- // }
- questiontwo = {
- // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
- "id": null,
- "is_necessary": object.question.is_necessary,
- "question_number": 1,
- "question_title": object.question.question_title,
- "question_type": 1,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- //获取指定id 号 用来插入,如果不是就是在最后添加
-
- //执行新增操作
- var insindex = null;
- if (this.state.problemtopicbool === true) {
- insindex = this.state.problemtopic;
- }
- this.createquestionsandanswers(object, 1, arrc, null, 0, 0, insindex);
- newarrpoll.splice(thiss.state.Insertposition, 0, question);
- } else if (object.question.question_type === 2) {
- //插入多选题
- if (object.question.max_choices < object.question.min_choices) {
- this.props.showNotification(`可选的最大限制不能小于最小限制`);
-
- return;
- }
-
- var questiontwo = {};
- var other = [];
- var option = [];
- var answerstwos = [];
- var answerstwoss = [];
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- other.push(object.question.answers[y].answer_text);
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- option.push(object.question.answers[y].answer_text)
- answerstwoss.push(datatwo);
- }
- }
- var arrc = option.concat(other);
- var answers = answerstwoss.concat(answerstwos);
-
- questiontwo = {
- "id": null,
- "is_necessary": object.question.is_necessary,
- "question_number": 2,
- "question_title": object.question.question_title,
- "question_type": 2,
- "max_choices": object.question.max_choices,
- "min_choices": object.question.min_choices,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
-
- var insindex = null;
- if (this.state.problemtopicbool === true) {
- insindex = this.state.problemtopic;
- }
- this.createquestionsandanswers(object, 2, arrc, null, object.question.max_choices, object.question.min_choices, insindex);
- //插入多选题
- // if (object.question.max_choices > arrc.length) {
-
- newarrpoll.splice(thiss.state.Insertposition, 0, question);
- } else if (object.question.question_type === 3) {
- //插入主观题
- var answers = [];
- var questiontwo = {};
- var answerstwos = [];
- var answerstwoss = [];
- if (object.question.answers.length > 0) {
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- answerstwoss.push(datatwo);
- }
- }
- }
- answers = answerstwoss.concat(answerstwos);
-
- questiontwo = {
- "id": null,
- "is_necessary": object.question.is_necessary,
- "question_number": 3,
- "question_title": object.question.question_title,
- "question_type": 3,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- //主观题不需要可选选项
-
- var insindex = null;
- if (this.state.problemtopicbool === true) {
- insindex = this.state.problemtopic;
- }
- this.createquestionsandanswers(object, 3, null, null, 0, 0, insindex);
- // newarrpoll.push(question);
- newarrpoll.splice(thiss.state.Insertposition, 0, question);
- }
- ///////////////////////////////////////////////////////////////////新增模式
- } else {
- //////////////////////////////////////////////////////////////////////////////修改模式
- //修改
- var uuk = -1
- for (var uk = 0; uk < newarrpoll.length; uk++) {
- if (object.question.id === newarrpoll[uk].question.id) {
- uuk = uk;
- console.log("删除了数据=-09876543234567890-111111111111")
- }
- }
-
-
- var question = {};
- if (object.question.question_type === 1) {
- var questiontwo = {};
- var other = [];
- var option = [];
- var answerstwos = [];
- var answerstwoss = [];
- ///////////////////////////daying
- //这个装选项和其他的
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- other.push(object.question.answers[y].answer_text);
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- option.push(object.question.answers[y].answer_text)
- answerstwoss.push(datatwo);
- }
- }
- var arrc = option.concat(other);
- var answers = answerstwoss.concat(answerstwos);
- // 插入单选题
- questiontwo = {
- // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 1,
- "question_title": object.question.question_title,
- "question_type": 1,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- if (uuk !== -1) {
- console.log("修改")
- this.edittotheserver(object, 1, arrc, null, 0, 0);
- newarrpoll.splice(uuk, 1, question);
- } else {
- console.log("删除")
- this.createquestionsandanswers(object, 1, arrc, null, 0, 0, object.question.id);
- newarrpoll.push(question);
- }
- console.log(newarrpoll)
- } else if (object.question.question_type === 2) {
- //插入多选题
- if (object.question.max_choices < object.question.min_choices) {
- this.props.showNotification(`可选的最大限制不能小于最小限制`);
-
- return;
- }
- var questiontwo = {};
- var other = [];
- var option = [];
- var answerstwos = [];
- var answerstwoss = [];
- for (var y = 0; y < object.question.answers.length; y++) {
- if (object.question.answers[y].answer_text === "其他") {
- var dataone = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- other.push(object.question.answers[y].answer_text);
- answerstwos.push(dataone);
- } else {
- var datatwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- option.push(object.question.answers[y].answer_text)
- answerstwoss.push(datatwo);
- }
- }
- var arrc = option.concat(other);
- var answers = answerstwoss.concat(answerstwos);
- questiontwo = {
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 2,
- "question_title": object.question.question_title,
- "question_type": 2,
- "max_choices": object.question.max_choices,
- "min_choices": object.question.min_choices,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- //插入多选题
- if (uuk !== -1) {
- console.log("修改")
- this.edittotheserver(object, 2, arrc, null, object.question.max_choices, object.question.min_choices);
- newarrpoll.splice(uuk, 1, question);
- } else {
- console.log("删除")
- this.createquestionsandanswers(object, 2, arrc, null, object.question.max_choices, object.question.min_choices, object.question.id);
- newarrpoll.push(question);
- }
- console.log(newarrpoll)
-
- } else if (object.question.question_type === 3) {
- //插入主观题
- var answers = [];
- var questiontwo = {};
-
- if (object.question.answers.length > 0) {
- for (var y = 0; y < object.question.answers.length; y++) {
- var answerstwo;
- if (object.question.answers[y].answer_text === "其他") {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- } else {
- answerstwo = {
- "answer_id": object.question.answers[y].answer_id,
- "answer_position": object.question.answers[y].answer_position,
- "answer_text": object.question.answers[y].answer_text
- }
- }
- answers.push(answerstwo);
- }
- }
- questiontwo = {
- "id": object.question.id,
- "is_necessary": object.question.is_necessary,
- "question_number": 3,
- "question_title": object.question.question_title,
- "question_type": 3,
- "new": "",
- "answers": answers
- };
- question = {"question": questiontwo};
- if (uuk !== -1) {
- console.log("修改")
- this.edittotheserver(object, 3, null, null, 0, 0);
- newarrpoll.splice(uuk, 1, question);
- } else {
- console.log("删除")
- this.createquestionsandanswers(object, 3, null, null, 0, 0, object.question.id);
- newarrpoll.push(question);
- }
- console.log(newarrpoll)
-
- }
-
- }
-
-
- //添加到上面列表中
- //改变题目总数
- if (object.question.question_type === 1) {
- //单选题
- this.state.mysingles = this.state.mysingles + 1;
- } else if (object.question.question_type === 2) {
- //多选题
- this.state.mydoubles = this.state.mydoubles + 1;
- } else if (object.question.question_type === 3) {
- //主观题
- this.state.mymainsint = this.state.mymainsint + 1;
-
- }
-
- //这里更新数据
- if (this.state.q_countst == 1) {
- this.setState({
- q_countst: 0,
- })
- }
- this.deleteadddom(indexo);
- // console.log(indexo)
- }
-
-
- ////新增到服务器中
- createquestionsandanswers = (object, number, option, other, max_choices, min_choices, insert_id) => {
- var thiss = this;
- var poll_id = this.state.pollid;
- var urlly = `/polls/${poll_id}/poll_questions.json`
- var max_choicess = null;
- var min_choicess = null;
- if (max_choices === 0 && min_choices === 0) {
- max_choicess = null;
- min_choicess = null;
- } else {
- max_choicess = max_choices;
- min_choicess = min_choices;
- }
- axios.post(urlly, {
- question_title: object.question.question_title,
- question_type: number,
- is_necessary: object.question.is_necessary,
- max_choices: max_choicess,
- min_choices: min_choicess,
- question_answers: option,
- question_other_answer: null,
- insert_id: insert_id
- }).then((result) => {
- // try {
- if (result !== undefined) {
- if (result.data.status === 0) {
- this.props.showNotification(`已完成`);
- thiss.thisinitializationdatanew();
- // console.log("确认创建问题")
- // console.log(result)
- // try {
- // if (result.data.status === 0) {
- // console.log("确认创建问题")
- // console.log(JSON.stringify(result.data))
- // }
- // } catch (e) {
- //
- // }
- }
- }
- // } catch (e) {
- //
- // }
-
- })
-
-
- }
- ///编辑修改到服务器当中
- edittotheserver = (object, number, option, other, max_choices, min_choices) => {
- console.log("调用了edittotheserver")
- var url = `/poll_questions/${object.question.id}.json`
- var thiss = this;
- axios.put(url, {
- // debug: true,
- question_title: object.question.question_title,
- question_type: number,
- is_necessary: object.question.is_necessary,
- max_choices: max_choices,
- min_choices: min_choices,
- question_answers: option,
- question_other_answer: null,
- }).then((result) => {
- try {
- if (result.data.status === 0) {
- this.props.showNotification(`编辑题目成功`);
- thiss.thisinitializationdatanew();
- }
- } catch (e) {
- // console.log("调用了edittotheserver")
- console.log(e)
- }
- })
- }
-
- //删除到服务器当中
- eletetoserver = (pollid, newarr, type, index) => {
- console.log("调用了eletetoserver")
- var id = pollid;
- var url = `/poll_questions/${id}.json`
- let {mysingles, mydoubles, mymainsint} = this.state
- var thiss = this;
-
- axios
- .delete(url, {})
- .then(function (response) {
- console.log(response)
- if (response === undefined) {
- return;
- }
- if (response.data.message === "删除成功") {
- thiss.props.showNotification(`删除成功`);
-
- newarr.splice(index, 1);
- if (type === 1) {
- mysingles = mysingles - 1;
- } else if (type === 2) {
- mydoubles = mydoubles - 1;
-
- } else if (type === 3) {
- mymainsint = mymainsint - 1;
-
- }
- // thiss.setState({
- // poll_questions: newarr,
- // mysingles: mysingles,
- // mydoubles: mydoubles,
- // mymainsint: mymainsint
- // });
- thiss.thisinitializationdatanew();
- }
- })
- }
-
- //上移到服务器中
- Upanddownmovementof = (bool, poll_question_id) => {
- // console.log("调用了Upanddownmovementofr")
- // console.log(poll_question_id)
- var thiss = this;
- if (bool === true) {
- var url = `/poll_questions/${poll_question_id}/up_down.json`;
- axios.post(url, {
- opr: "up",
- }).then((result) => {
- try {
- if (result.data.status === 0) {
- this.props.showNotification(`已完成`);
- thiss.thisinitializationdatanew();
- }
- // console.log(JSON.stringify(result))
- } catch (e) {
- console.log("上移题目成功 错误")
- console.log(e)
- }
-
- })
- } else {
- var url = `/poll_questions/${poll_question_id}/up_down.json`;
- axios.post(url, {
- opr: "down",
- }).then((result) => {
- try {
- if (result.data.status === 0) {
- // message.success("下移题目成功", 1)
- this.props.showNotification(`已完成`);
- thiss.thisinitializationdatanew();
- }
- // console.log(JSON.stringify(result))
- } catch (e) {
- console.log("下移题目成功 错误")
- console.log(e)
- }
- })
- }
-
- }
-
- //删除编辑新增条目
- //id 条目的唯一id
- //i 为要删除的子条目
- deleteentrys = (id, i, stirngname) => {
- console.log(id)
- console.log(stirngname);
- var arrtwoy = this.state.adddom;
- let newarrtwoy = [...arrtwoy];
- for (var k = 0; k < newarrtwoy.length; k++) {
- if (newarrtwoy[k] != undefined) {
- if (newarrtwoy[k].question.id === id) {
- for (var c = 0; c < newarrtwoy[k].question.answers.length; c++) {
- if (c === i) {
- // console.log("删除了")
- // console.log(c)
- newarrtwoy[k].question.answers.splice(c, 1);
- }
- }
- }
- }
- }
- if (stirngname === true) {
- console.log(stirngname);
- this.setState({
- newoption: false,
- adddom: newarrtwoy,
-
- })
- } else {
- console.log(stirngname);
- this.setState({
- adddom: newarrtwoy,
- });
- }
-
-
- }
-
-
- // 新增选项
- ewoption = (id, object) => {
- console.log("ewoption 440")
- console.log("是否是新建题目还是编辑")
- // console.log(object.question.new)
-
-
- let arrtwo = this.state.adddom;
- let newarrtwo = [...arrtwo];
-
-
- for (var k = 0; k < newarrtwo.length; k++) {
- // console.log(arrtwo[k].question.id);
- if (newarrtwo[k] != undefined) {
- if (newarrtwo[k].question.id === id) {
- var data = {
- "answer_id": newarrtwo[k].question.answers.length + 1,
- "answer_position": newarrtwo[k].question.answers.length + 1,
- "answer_text": ""
- };
- //向头部添加元素
- // newarrtwo[k].question.answers.unshift(data);
- //如果有其他这一项就删除掉
- if (newarrtwo[k].question.answers.length > 0) {
- for (var o = 0; o < newarrtwo[k].question.answers.length; o++) {
- if (newarrtwo[k].question.answers[o].answer_text != undefined) {
- if (newarrtwo[k].question.answers[o].answer_text === "其他") {
- newarrtwo[k].question.answers.splice(o, 0, data);
- this.setState({
- adddom: newarrtwo
- })
- return
- } else {
- if (o === newarrtwo[k].question.answers.length - 1) {
- newarrtwo[k].question.answers.push(data);
- this.setState({
- adddom: newarrtwo
- })
- return
- }
- }
- }
- }
- } else {
- newarrtwo[k].question.answers.push(data);
- this.setState({
- adddom: newarrtwo
- })
- }
-
- }
- }
- }
-
- }
-
-
- swapArray = (arr, index1, index2) => {
- arr[index1] = arr.splice(index2, 1, arr[index1])[0];
- return arr;
- }
-
- //新增其他选项
- addanotheroption = (id) => {
- console.log("addanotheroption 457")
- let arrtwo = this.state.adddom;
- let newarrtwo = [...arrtwo];
- console.log(newarrtwo)
- for (var k = 0; k < newarrtwo.length; k++) {
- if (newarrtwo[k] != undefined) {
- if (newarrtwo[k].question.id === id) {
- var data = {
- "answer_id": newarrtwo[k].question.answers.length + 1,
- "answer_position": newarrtwo[k].question.answers.length + 1,
- "answer_text": "其他"
- };
- newarrtwo[k].question.answers.push(data);
- }
- }
- }
- this.setState({
- adddom: newarrtwo,
- newoption: true,
- })
- }
-
-
- //点击向上排序按钮事件
- handleClickBySortUp = (index, object) => {
- console.log("handleClickBySortUp 521")
- let arr = this.state.poll_questions;
- let newarr = [...arr];
- console.log(newarr)
- if (index != 0) {
- this.Upanddownmovementof(true, object.question.id);
- let temp = newarr[index - 1];
- newarr[index - 1] = newarr[index];
- newarr[index] = temp;
- this.setState({
- poll_questions: newarr,
- });
- }
- }
-
- //点击向下排序按钮事件
- handleClickBySortDown = (index, object) => {
- console.log("handleClickBySortDown 536")
- let arr = this.state.poll_questions;
- let newarr = [...arr];
- //
- if (index != newarr.length - 1) {
- this.Upanddownmovementof(false, object.question.id);
- let temp = newarr[index + 1];
- newarr[index + 1] = newarr[index];
- newarr[index] = temp;
- this.setState({
- poll_questions: newarr,
- });
- } else {
- console.log("2222index==arr.length");
- console.log(this.state.poll_questions);
- }
- }
-
- //点击删除按钮事件
- handleClickByDelete = (type, index, object) => {
- console.log("handleClickByDelete 556")
- console.log("object.question.id")
- console.log(object.question.id)
- let arr = this.state.poll_questions;
- let newarr = [...arr];
- this.eletetoserver(object.question.id, newarr, type, index)
-
- }
-
- // 数字输入监听
- //e为获取组件对象
- //i外层数组
- //k为内层数组
- handleInputChanges = (e, i, k) => {
- console.log("handleInputChanges 612")
-
- let value = e.target.value;//取到input的数据
- console.log("handleInputChanges value is :" + value);
- console.log(k);
- let arr = this.state.adddom;
- let newarr = [...arr];
-
- newarr[i].question.answers[k].answer_text = value
- this.setState({
- adddom: newarr
- })
-
- }
-
- //标题输入监听
- handleInputTopic = (e, i) => {
- console.log("handleInputTopic 633")
-
- let value = e.target.value;//取到input的数据
- console.log("handleInputTopic value is :" + value);
- console.log(i);
- let arr = this.state.adddom;
- let newarr = [...arr];
- newarr[i].question.question_title = value
- this.setState({
- adddom: newarr
- })
- }
-
- //最小值
- handleGradationGroupChangee = (value, index, max, length) => {
-
- debugger
- var minbool = false;
- var maxbool = false;
- let arr = this.state.adddom;
- if (parseInt(value) === 0 || parseInt(value) === "0" || parseInt(value) === null || parseInt(value) === undefined || parseInt(value) < 1) {
- minbool = true;
- }
- if (max === 0 || max === "0" || max === null || max === undefined) {
- maxbool = true;
- }
-
- if (minbool === true && maxbool === true) {
- for (var i = 0; i < arr.length; i++) {
- if (index === i) {
- arr[i].question.min_choices = parseInt(value);
- }
- }
- this.setState({
- adddom: arr
- })
- } else {
- for (var i = 0; i < arr.length; i++) {
- if (index === i) {
- arr[i].question.min_choices = parseInt(value);
- arr[i].question.max_choices = length;
- }
- }
- this.setState({
- adddom: arr
- })
- }
-
- }
-
- //最大值
- handleGradationGroupChangeee = (value, index) => {
-
- let arr = this.state.adddom;
- for (var i = 0; i < arr.length; i++) {
- if (index === i) {
- arr[i].question.max_choices = parseInt(value);
- }
- }
- this.setState({
- adddom: arr
- })
- // console.log(this.state.adddom);
- }
-
- //提交题目//没有就创建新的题库,新建问题和保存题目不一样不能同时保存 这里只是新建 和编辑 标题和须知
- submitQuestionnaire = () => {
- console.log("调用了submitQuestionnaire")
- if (this.state.Newedit === true) {
-
- this.newword();
-
- } else {
- if (this.state.polls_nametest === undefined || this.state.polls_nametest === "") {
- this.props.showNotification("请输入标题");
- return
- }
-
- if (this.state.polls_descriptiontest.length > 100) {
-
- }
- var pollid;
- if (this.state.pollid === undefined) {
- pollid = this.props.match.params.pollid;
- } else {
- pollid = this.state.pollid;
- }
-
-
- var url = `/polls/${pollid}.json`;
- axios.put(url, {
- polls_name: this.state.polls_nametest,
- polls_description: this.state.polls_descriptiontest
- }).then((result) => {
- try {
- // console.log(JSON.stringify(result))
- if (result.data.status === 0) {
- // console.log("更新题目成功")
- // this.props.showNotification("保存成功");
- this.props.history.push(`/courses/${this.props.match.params.coursesId}/polls/${pollid}/detail?tab=2`)
- }
- } catch (e) {
-
- }
- })
- }
- }
-
- cancelmodel = () => {
-
- this.setState({
- Modalstype: false,
- Modalstopval: "",
- ModalsBottomval: "",
- })
-
- }
- savedelete = (question_type, index, item) => {
- console.log("savedelete");
- this.handleClickByDelete(question_type, index, item);
- this.setState({
- Modalstype: false,
- Modalstopval: "",
- ModalsBottomval: "",
- })
- }
- // 问题的类型,1单选题,2为多选题,3为主观题
- showDeleteConfirm = (question_type, index, item) => {
- this.setState({
- Modalstype: true,
- Modalstopval: "是否确认删除?",
- ModalsBottomval: "",
- ModalCancel: this.cancelmodel,
- ModalSave: () => this.savedelete(question_type, index, item),
- })
-
- }
- //必答选项
- onCheckAllChange = (e, index) => {
- console.log("onCheckAllChange");
- console.log(e.target.checked);
- // console.log(e.target.value);
- let arr = this.state.adddom;
- for (var i = 0; i < arr.length; i++) {
- if (index === i) {
- if (e.target.checked === true) {
- arr[i].question.is_necessary = 1;
-
- } else {
- arr[i].question.is_necessary = 0;
- }
- }
- }
- this.setState({
- adddom: arr
- })
- }
-
- //重新编辑标题和须知
- adddomeditit = () => {
- if (this.state.mysave === true) {
- this.setState({
- mysave: false,
- readOnlys: "readOnly",
- storagedesc:this.state.polls_nametest,
- storagedesctwo:this.state.polls_descriptiontest,
- })
- } else if (this.state.mysave === false) {
- this.setState({
- mysave: true,
- readOnlys: "",
- storagedesc:this.state.polls_nametest,
- storagedesctwo:this.state.polls_descriptiontest,
- })
- }
- }
- //取消保存
- onSaveExercisetwo = () => {
- if (this.state.mysave === true) {
- this.setState({
- mysave: false,
- Newedit: false,
- readOnlys: "readOnly",
- polls_nametest:this.state.storagedesc,
- polls_descriptiontest:this.state.storagedesctwo,
- })
- } else {
- this.setState({
- mysave: false,
- Newedit: false,
- readOnlys: "readOnly",
- polls_nametest:this.state.storagedesc,
- polls_descriptiontest:this.state.storagedesctwo,
- })
- }
- }
- // 创建问卷
- onSaveExercise = () => {
- if (this.state.Newedit === true) {
-
- if (this.state.polls_nametest === undefined || this.state.polls_nametest === "") {
- this.props.showNotification(`请输入标题`);
- return
- }
- let coursesId = this.props.match.params.coursesId;
- const urlls = `/courses/${coursesId}/polls.json`
- axios.post(urlls, {
- polls_name: this.state.polls_nametest,
- polls_description: this.state.polls_descriptiontest
- }).then((result) => {
- if (result === undefined) {
- return;
- }
- this.state.Newedit === false;
- this.props.showNotification(`问卷创建成功!`);
- this.setState({
- pollid: result.data.data.id,
- Newedit: false,
- mysave: false,
- readOnlys: "readOnly",
- cancellation: false,
- })
-
-
- })
- } else {
- if (this.state.polls_nametest === undefined || this.state.polls_nametest === "") {
- this.props.showNotification("请输入标题");
- return
- }
-
- var pollid;
- if (this.state.pollid === undefined) {
- pollid = this.props.match.params.pollid;
- } else {
- pollid = this.state.pollid;
- }
-
-
- var url = `/polls/${pollid}.json`;
- axios.put(url, {
- polls_name: this.state.polls_nametest,
- polls_description: this.state.polls_descriptiontest
- }).then((result) => {
- if (result !== undefined) {
- this.props.showNotification(`问卷更新成功!`);
- this.setState({
- mysave: false,
- readOnlys: "readOnly",
- })
- }
-
- })
- }
-
- }
-
- //试图
- render() {
- let {
- addonAfter,
- user_permission,
- polls_status,
- Modalstype,
- mysave,
- readOnlys,
- newoption,
- cancellation,
- } = this.state
- //获取老师权限
- // console.log("[`${maps[polls_status && polls_status]}`]]");
- // console.log(polls_status);
- // console.log([[`${maps[polls_status && polls_status]}`]] + "");
-
- const IsAdmin = this.props.isAdmin();
- const {getFieldDecorator} = this.props.form;
- const formItemLayout = {
- labelCol: {
- xs: {span: 24},
- // sm: { span: 8 },
- sm: {span: 24},
- },
- wrapperCol: {
- xs: {span: 24},
- // sm: { span: 16 },
- sm: {span: 24},
- },
- };
-
- const radioStyle = {
- display: 'block',
- height: '30px',
- lineHeight: '30px',
- };
-
- // console.log(this.state.projects===undefined?"":this.state.projects.poll_questions)
- var displaymysave = (mysave === true) ? "" : "display:none;";
- return (
-
- {/*提示*/}
- {Modalstype && Modalstype === true ?
: ""}
-
-
- {this.props.coursedata.name}
- >
- 问卷
- >
- {this.props.match.params.news === undefined ? "新建" : this.props.match.params.news === "new" ? "新建" : "编辑"}
-
-
-
{this.props.match.params.news === undefined ? "新建问卷" : this.props.match.params.news === "new" ? "新建问卷" : "编辑问卷"}
-
返回
-
-
- {/*
*/}
-
-
-
- )
- }
-
-}
-
-const WrappedPollNew = Form.create({name: 'taskPollNew'})(PollNew);
-// RouteHOC()
+import React, {Component} from "react";
+import {Form, Input, Tooltip, Checkbox, Radio, Select, message, Modal, Button} from 'antd'
+import {WordsBtn, ActionBtn} from 'educoder'
+import '../css/members.css'
+import "../common/formCommon.css"
+
+import './pollStyle.css'
+import '../css/Courses.css'
+import axios from 'axios'
+import moment from "../new/CoursesNew";
+import Modals from "../../modals/Modals";
+
+
+const TextArea = Input.TextArea
+const RadioGroup = Radio.Group
+const CheckboxGroup = Checkbox.Group
+const Option = Select.Option;
+const maps = {1: "未发布", 2: "提交中", 3: "已截止"}
+const confirm = Modal.confirm;
+
+class PollNew extends Component {
+ // 问卷新建和编辑
+ //
+ // * addonAfter 字数限制
+ // * q_counts 题目总数
+ // * mysingles 单选题数量
+ // * mydoubles 多选题数量
+ // * mymainsint 主观题数量
+ // * adddom 添加编辑的数据 页面点击新增题目
+ // * editentry 编辑条目 新增的题目点击到条目中
+ //* questionnair 问卷是否存在 默认不存在
+ // *
+
+ constructor(props) {
+ super(props);
+ this.state = {
+ visible: false,
+ poll_questions: [],
+ user_permission: "",
+ addonAfter: 60,
+ addonAftertwo: 100,
+ mysingles: 0,
+ mydoubles: 0,
+ mymainsint: 0,
+ adddom: [],
+ editentry: [],
+ questionnair: false,
+ polls_name: undefined,
+ polls_nametest: "",
+ polls_description: "",
+ polls_descriptiontest: "",
+ storagedesc:"",
+ storagedesctwo:"",
+ coursesId: "",
+ pollid: undefined,
+ polls_status: undefined,
+ q_countst: 0,
+ Newedit: true,
+ Insertposition: undefined,
+ Modalstype: false,
+ mysave: false,
+ readOnlys: "readOnly",
+ problemtopic: null,
+ problemtopicbool: false,
+ newoption: false,
+ cancellation: false,
+ }
+ // console.log("试卷新建和编辑");
+ // console.log(JSON.stringify(props));
+
+ }
+
+ changeTopicName = (e) => {
+ let num = 60 - parseInt(e.target.value.length);
+ this.setState({
+ addonAfter: num < 0 ? 0 : num
+ })
+ this.setState({
+ polls_nametest: e.target.value
+ })
+ }
+
+
+ changeTopicNametwo = (e) => {
+ // console.log("获取的值" + e.target.value);
+ let num = 100 - parseInt(e.target.value.length);
+ this.setState({
+ addonAftertwo: num < 0 ? 0 : num
+ })
+ this.setState({
+ polls_descriptiontest: e.target.value
+ })
+ }
+
+ // 初始化数据
+ componentDidMount = () => {
+ console.log("componentDidMount 50")
+ if (this.props.match.params.news !== undefined) {
+ if (this.props.match.params.news === "new") {
+ this.state.Newedit === true;
+ this.setState({
+ Newedit: true,
+ mysave: true,
+ readOnlys: "",
+ cancellation: true,
+ })
+ } else {
+ this.Initializatio_data();
+ this.state.Newedit === false;
+ this.setState({
+ Newedit: false,
+ mysave: false,
+ readOnlys: "readOnly",
+ })
+ }
+ }
+
+
+ // this.getPollInfo();
+
+ }
+ //获取权限
+ // getPollInfo(){
+ // // console.log(this.props.match);
+ // let pollId=this.props.match.params.pollId;
+ // let url=`/polls/${pollId}/common_header.json`
+ // axios.get(url).then((result)=>{
+ // if(result.status==200){
+ // this.setState({
+ // pollDetail:result.data,
+ // user_permission:result.data.user_permission
+ // })
+ // }
+ // }).catch((error)=>{
+ // console.log(error);
+ // })
+ // }
+ //初始化请求网络
+ Initializatio_data = () => {
+ console.log("Initializatio_data 582")
+ //课堂id
+ let coursesId = this.props.match.params.coursesId;
+ //时间id
+ let pollid = this.props.match.params.pollid;
+ console.log(pollid);
+ // let coursesId = 557;
+ if (pollid === undefined) {
+ // console.log("没有问卷新建问卷~~~")
+ // let coursesId=this.props.match.params.coursesId;
+ // // to={`/courses/${coursesId}/polls/new`}
+ //
+ // const urll = `/courses/${coursesId}/polls/new.json`
+ // axios.get(urll).then((result) => {
+ // if (result.status === 200) {
+ // console.log(urll)
+ // console.log("问卷新建成功")
+ // console.log(JSON.stringify(result))
+ // // var path=`/courses/${coursesId}/polls/new`;
+ // //
+ // // this.props.history.push({ pathname: path, state: { } });
+ // }
+ // }).catch((error) => {
+ // console.log(error)
+ // })
+
+ // const urlls = `/courses/${coursesId}/polls.json`
+ // axios.post(urlls,{
+ // polls_name: "这是标题",
+ // polls_description:"这是标题须知"
+ // }).then((result)=>{
+ // console.log("创建问卷++++++")
+ // console.log(result)
+ // try {
+ // if(result.data.status===0){
+ // console.log("创建问卷")
+ // console.log(JSON.stringify(result.data))
+ // }
+ // }catch (e) {
+ //
+ // }
+ //
+ // })
+ //没有问卷
+ this.setState({
+ projects: [],
+ polls_name: "",
+ polls_description: "",
+ poll_questions: [],
+ question_types: [],
+ pollid: undefined,
+ mysingles: 0,
+ mydoubles: 0,
+ mymainsint: 0,
+ polls_nametest: "",
+ polls_descriptiontest: "",
+ coursesId: 0,
+ questionnair: false
+ })
+ } else {
+ const url = `/polls/${pollid}/edit.json`;
+ axios.get(url).then((result) => {
+ if (result !== undefined)
+
+ // console.log("有问卷~~~")
+ // if (result.status === 200) {
+ // console.log(JSON.stringify(result.data))
+ this.props.form.setFieldsValue({
+ polls_nametest: result.data.poll.polls_name,
+ polls_descriptiontest: result.data.poll.polls_description,
+ });
+ this.setState({
+ projects: result.data,
+ pollid: pollid,
+ polls_status: result.data.poll.polls_status,
+ polls_name: result.data.poll.polls_name,
+ polls_description: result.data.poll.polls_description,
+ poll_questions: result.data.poll_questions,
+ question_types: result.data.question_types,
+ mysingles: result.data.question_types.q_singles,
+ mydoubles: result.data.question_types.q_doubles,
+ mymainsint: result.data.question_types.q_mains,
+ polls_nametest: result.data.poll.polls_name,
+ polls_descriptiontest: result.data.poll.polls_description,
+ questionnair: true,
+ })
+ console.log(this.state.polls_nametest)
+ console.log(this.state.polls_descriptiontest)
+ // }
+ }).catch((error) => {
+ console.log(error)
+ })
+ }
+
+ }
+
+ //重新获取数据
+ thisinitializationdatanew = () => {
+ var pollidsy = null;
+ if (this.state.pollid !== undefined) {
+ pollidsy = this.state.pollid;
+ if (pollidsy === null || pollidsy === undefined) {
+ pollidsy = this.props.match.params.pollid;
+ }
+ }
+
+ if (pollidsy === null || pollidsy === undefined) {
+ return
+ }
+
+ const url = `/polls/${pollidsy}/edit.json`;
+ axios.get(url).then((result) => {
+ if (result !== undefined)
+
+ // console.log("有问卷~~~")
+ // if (result.status === 200) {
+ // console.log(JSON.stringify(result.data))
+ this.setState({
+ projects: result.data,
+ pollid: pollidsy,
+ polls_status: result.data.poll.polls_status,
+ polls_name: result.data.poll.polls_name,
+ polls_description: result.data.poll.polls_description,
+ poll_questions: result.data.poll_questions,
+ question_types: result.data.question_types,
+ mysingles: result.data.question_types.q_singles,
+ mydoubles: result.data.question_types.q_doubles,
+ mymainsint: result.data.question_types.q_mains,
+ polls_nametest: result.data.poll.polls_name,
+ polls_descriptiontest: result.data.poll.polls_description,
+ questionnair: true,
+ })
+
+ // }
+ }).catch((error) => {
+ console.log(error)
+ })
+ }
+ //新建问卷
+ newword = () => {
+ if (this.state.polls_nametest === undefined || this.state.polls_nametest === "") {
+ this.props.showNotification(`请输入标题`);
+ return
+ }
+ let coursesId = this.props.match.params.coursesId;
+ const urlls = `/courses/${coursesId}/polls.json`
+ axios.post(urlls, {
+ polls_name: this.state.polls_nametest,
+ polls_description: this.state.polls_descriptiontest
+ }).then((result) => {
+ if (result.data.status === 0) {
+ this.state.Newedit === false;
+ // this.props.showNotification(`试卷创建成功`);
+ this.setState({
+ pollid: result.data.data.id,
+ Newedit: false,
+ })
+ this.props.history.push(`/courses/${this.props.match.params.coursesId}/polls/${result.data.data.id}/detail?tab=2`)
+ }
+ })
+ }
+ //添加单选题目
+ addmysingles = () => {
+
+ if (this.state.newoption === true) {
+ this.setState({
+ newoption: false
+ })
+ }
+
+ var Insertposition = this.state.poll_questions.length;
+ // console.log(JSON.stringify(this.state.poll_questions));
+ for (var i = 0; i < this.state.poll_questions.length; i++) {
+ if (this.state.poll_questions[i].question.question_type === 1) {
+ Insertposition = i;
+ }
+
+ }
+ this.addMytopic(1, this.state.pollid, Insertposition, false, 0);
+ // }
+ }
+
+ //添加多选题目
+ addmydoubles = () => {
+ console.log("addmymainsint 70")
+ if (this.state.newoption === true) {
+ this.setState({
+ newoption: false
+ })
+ }
+
+ var Insertposition = this.state.poll_questions.length;
+ // console.log(JSON.stringify(this.state.poll_questions));
+ for (var i = 0; i < this.state.poll_questions.length; i++) {
+ if (this.state.poll_questions[i].question.question_type === 2) {
+ Insertposition = i;
+ }
+
+
+ }
+ this.addMytopic(2, this.state.pollid, Insertposition, false, 0);
+
+ // }
+ }
+
+ //添加主观题目
+ addmymainsint = () => {
+
+ var Insertposition = this.state.poll_questions.length;
+ // console.log(JSON.stringify(this.state.poll_questions));
+ for (var i = 0; i < this.state.poll_questions.length; i++) {
+ if (this.state.poll_questions[i].question.question_type === 3) {
+ Insertposition = i;
+ }
+
+
+ }
+
+ this.addMytopic(3, this.state.pollid, Insertposition, false, 0);
+ // }
+ }
+
+ //编辑方法
+ adddomedit = (object) => {
+ console.log("adddomedit 76");
+ if (this.state.q_countst > 0) {
+ this.props.showNotification(`不能同时编辑两题`);
+
+ return;
+ }
+ var anserbool = false;
+ this.setState({
+ q_countst: 1,
+ })
+ window.scrollTo(0, this.refs.targetElement.offsetTop)
+ let {adddom} = this.state;
+ // var arr =new Object(objects);
+ // console.log(arr)
+ // adddom.push(arr);
+ var question = {};
+ var Insertposition = this.state.poll_questions.length;
+ if (object.question.question_type === 1) {
+ var answers = [];
+ var questiontwo = {};
+ ///////////////////////////daying
+ for (var y = 0; y < object.question.answers.length; y++) {
+ var answerstwo;
+ if (object.question.answers[y].answer_text === "其他") {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ anserbool = true;
+ } else {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ }
+ answers.push(answerstwo);
+
+
+ }
+ // 插入单选题
+ questiontwo = {
+ // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 1,
+ "question_title": object.question.question_title,
+ "question_type": 1,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ adddom.push(question);
+ for (var i = 0; i < this.state.poll_questions.length; i++) {
+ if (this.state.poll_questions[i].question.question_type === 1) {
+ Insertposition = i;
+ }
+ }
+ } else if (object.question.question_type === 2) {
+ //插入多选题
+ var answers = [];
+ var questiontwo = {};
+
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ anserbool = true;
+ } else {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ }
+ answers.push(answerstwo);
+ }
+ questiontwo = {
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 2,
+ "question_title": object.question.question_title,
+ "question_type": 2,
+ "max_choices": object.question.max_choices,
+ "min_choices": object.question.min_choices,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ adddom.push(question);
+ for (var i = 0; i < this.state.poll_questions.length; i++) {
+ if (this.state.poll_questions[i].question.question_type === 2) {
+ Insertposition = i;
+ }
+ }
+ } else if (object.question.question_type === 3) {
+ //插入主观题
+ var answers = [];
+ var questiontwo = {};
+
+ if (object.question.answers.length > 0) {
+ for (var y = 0; y < object.question.answers.length; y++) {
+ var answerstwo;
+ if (object.question.answers[y].answer_text === "其他") {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ } else {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ }
+ answers.push(answerstwo);
+ }
+ }
+ questiontwo = {
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 3,
+ "question_title": object.question.question_title,
+ "question_type": 3,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ adddom.push(question);
+ for (var i = 0; i < this.state.poll_questions.length; i++) {
+ if (this.state.poll_questions[i].question.question_type === 3) {
+ Insertposition = i;
+ }
+ }
+ }
+ this.setState({
+ adddom: adddom,
+ newoption: anserbool,
+ Insertposition: Insertposition
+ })
+
+ }
+
+ //新增添加题目 有new
+ addMytopic = (index, pollid, Insertposition, Whether, id) => {
+ //Whether 是否插入
+ // console.log("id")
+ // console.log(id)
+ // console.log("Whether")
+ // console.log(Whether)
+ console.log("addMytopic 90")
+ if (this.state.q_countst > 0) {
+ this.props.showNotification(`不能同时编辑两题`);
+
+ return;
+ }
+ this.state.Insertposition = Insertposition;
+ var Whethername = null;
+ if (Whether === true) {
+ Whethername = id;
+ }
+ this.setState({
+ Insertposition: Insertposition,
+ q_countst: 1,
+ })
+ window.scrollTo(0, this.refs.targetElement.offsetTop)
+ var arrr = this.state.adddom;
+ let newarrr = [...arrr];
+
+ var arr = this.state.poll_questions;
+ let newarr = [...arr];
+
+ if (newarr.length > 0) {
+ if (index === 1) {
+ // 插入单选题
+ // console.log(this.state.poll_questions[newarr.length - 1].question.id);
+ var question = {}
+ var questiontwo = {
+ // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
+ "id": this.state.poll_questions[newarr.length - 1].question.id + 1,
+ "is_necessary": 1,
+ "question_number": 1,
+ "question_title": "",
+ "question_type": 1,
+ "new": "new",
+ "answers": [
+ {"answer_id": 1, "answer_position": 1, "answer_text": ""},
+ {"answer_id": 2, "answer_position": 2, "answer_text": ""},
+ {"answer_id": 3, "answer_position": 3, "answer_text": ""},
+ {"answer_id": 4, "answer_position": 4, "answer_text": ""},
+ // {"answer_id": 5, "answer_position": 5, "answer_text": "其他"},
+ ]
+ };
+ question = {"question": questiontwo};
+ newarrr.push(question);
+
+ this.setState({
+ adddom: newarrr,
+ problemtopic: Whethername,
+ problemtopicbool: Whether,
+ })
+
+ } else if (index === 2) {
+ //插入多选题
+ var question = {}
+ var questiontwo = {
+ "id": this.state.poll_questions[newarr.length - 1].question.id + 1,
+ "is_necessary": 1,
+ "question_number": 2,
+ "question_title": "",
+ "question_type": 2,
+ "max_choices": 0,
+ "min_choices": 0,
+ "new": "new",
+ "answers": [
+ {"answer_id": 1, "answer_position": 1, "answer_text": ""},
+ {"answer_id": 2, "answer_position": 2, "answer_text": ""},
+ {"answer_id": 3, "answer_position": 3, "answer_text": ""},
+ {"answer_id": 4, "answer_position": 4, "answer_text": ""},
+ // {"answer_id": 5, "answer_position": 5, "answer_text": "其他"},
+ ]
+ };
+ question = {"question": questiontwo};
+ newarrr.push(question);
+
+ this.setState({
+ adddom: newarrr,
+ problemtopic: Whethername,
+ problemtopicbool: Whether,
+ })
+
+ } else if (index === 3) {
+ //插入主观题
+ // console.log(this.state.poll_questions[newarr.length - 1].question.id);
+ var question = {}
+ var questiontwo = {
+ "id": this.state.poll_questions[newarr.length - 1].question.id + 1,
+ "is_necessary": 1,
+ "question_number": 3,
+ "question_title": "",
+ "question_type": 3,
+ "new": "new",
+ "answers": []
+ };
+ question = {"question": questiontwo};
+ newarrr.push(question);
+ this.setState({
+ adddom: newarrr,
+ problemtopic: Whethername,
+ problemtopicbool: Whether,
+ })
+
+ }
+ } else {
+ /////上面视图全部删除后 要加载的
+ if (index === 1) {
+ // 插入单选题
+ var id;
+ try {
+ id = this.state.poll_questions[newarr.length - 1].question.id + 1
+ } catch (e) {
+ id = 1;
+ }
+ var questiontwo = {
+ // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
+ "id": id,
+ "is_necessary": 1,
+ "question_number": 1,
+ "question_title": "",
+ "question_type": 1,
+ "new": "new",
+ "answers": [
+ {"answer_id": 1, "answer_position": 1, "answer_text": ""},
+ {"answer_id": 2, "answer_position": 2, "answer_text": ""},
+ {"answer_id": 3, "answer_position": 3, "answer_text": ""},
+ {"answer_id": 4, "answer_position": 4, "answer_text": ""},
+ // {"answer_id": 5, "answer_position": 5, "answer_text": "其他"},
+ ]
+ };
+ question = {"question": questiontwo};
+ newarrr.push(question);
+
+ this.setState({
+ adddom: newarrr,
+ problemtopic: Whethername,
+ problemtopicbool: Whether,
+ })
+
+ } else if (index === 2) {
+ //插入多选题
+ var id;
+ try {
+ id = this.state.poll_questions[newarr.length - 1].question.id + 1
+ } catch (e) {
+ id = 1;
+ }
+ var questiontwo = {
+ "id": id,
+ "is_necessary": 1,
+ "question_number": 2,
+ "question_title": "",
+ "question_type": 2,
+ "max_choices": 0,
+ "min_choices": 0,
+ "new": "new",
+ "answers": [
+ {"answer_id": 1, "answer_position": 1, "answer_text": ""},
+ {"answer_id": 2, "answer_position": 2, "answer_text": ""},
+ {"answer_id": 3, "answer_position": 3, "answer_text": ""},
+ {"answer_id": 4, "answer_position": 4, "answer_text": ""},
+ // {"answer_id": 5, "answer_position": 5, "answer_text": "其他"},
+ ]
+ };
+ question = {"question": questiontwo};
+ newarrr.push(question);
+
+ this.setState({
+ adddom: newarrr,
+ problemtopic: Whethername,
+ problemtopicbool: Whether,
+ })
+
+ } else if (index === 3) {
+ //插入主观题
+ var id;
+ try {
+ id = this.state.poll_questions[newarr.length - 1].question.id + 1
+ } catch (e) {
+ id = 1;
+ }
+ var questiontwo = {
+ "id": id,
+ "is_necessary": 1,
+ "question_number": 3,
+ "question_title": "",
+ "question_type": 3,
+ "new": "new",
+ "answers": []
+ };
+ question = {"question": questiontwo};
+ newarrr.push(question);
+ this.setState({
+ adddom: newarrr,
+ problemtopic: Whethername,
+ problemtopicbool: Whether,
+ })
+ }
+ }
+ }
+
+ //删除指定条目
+ deleteadddom = (indexo) => {
+ console.log("deleteadddom 259")
+ var arr = this.state.adddom;
+ let newarr = [...arr];
+
+ newarr.splice(indexo, 1);
+ this.setState({
+ adddom: newarr,
+ q_countst: 0,
+ problemtopic: null,
+ problemtopicbool: false,
+ })
+ }
+ //保存并继续
+ //保存并继续,即提交本题的新建并继续创建一个相同的题(该新题处于编辑模式,题目和选项不要清空)
+ deleteadddomtwo = (indexo, object) => {
+ var thiss = this;
+ this.setState({
+ q_countst: 1,
+ })
+ var poll_questionslength = this.state.poll_questions.length;
+ // console.log("deleteadddomtwo|||||||||||||||||||||||||||||||||||||||||\\");
+ // console.log(indexo);
+ // console.log(object);
+ // console.log(object.question.question_type);
+ let arr = this.state.adddom;
+ let arrpoll = this.state.poll_questions;
+ let newarr = [...arr];
+ let newarrpoll = [...arrpoll];
+
+ //选项内容不能为空
+ let max = 0;
+ let maxtie = newarr[indexo].question.answers.length;
+ for (var k = 0; k < newarr[indexo].question.answers.length; k++) {
+ try {
+ if (newarr[indexo].question.answers[k].answer_text != undefined) {
+ if (newarr[indexo].question.answers[k].answer_text === "") {
+ max = max + 1;
+ }
+ }
+ } catch (e) {
+ console.log("PollNew281")
+ console.log(e)
+ }
+ }
+ if (newarr[indexo].question.question_title === "") {
+ this.props.showNotification(`题目不能为空`);
+
+ return
+ }
+ if (max > 0) {
+ if (object.question.question_type === 1) {
+ this.props.showNotification(`选项内容不能为空`);
+
+ return
+ } else if (object.question.question_type === 2) {
+ this.props.showNotification(`选项内容不能为空`);
+
+ return
+ }
+
+ }
+ if (maxtie < 2) {
+ if (object.question.question_type === 1) {
+ this.props.showNotification(`选项不能少于2个!`);
+
+ return
+ } else if (object.question.question_type === 2) {
+ this.props.showNotification(`选项不能少于2个!`);
+
+ return
+ }
+
+
+ }
+
+ if (object.question.question_type === 2) {
+ if (object.question.max_choices > 0) {
+ if (object.question.min_choices < 2) {
+ this.props.showNotification(`可选最小不能少于2个`);
+
+ return;
+
+ }
+ }
+
+ }
+ if (object.question.new === "new") {
+ // 根据数组里面的new 来确定是否是新增还是 修改
+ //添加道数组上
+ //不能共用数组 所以自己写个新数组 然后push 上面卷子中
+ var question = {};
+ if (object.question.question_type === 1) {
+
+ var questiontwo = {};
+ var other = [];
+ var option = [];
+ var answerstwos = [];
+ var answerstwoss = [];
+ ///////////////////////////daying
+ // 这个是装选项和其他的
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ other.push(object.question.answers[y].answer_text);
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ option.push(object.question.answers[y].answer_text)
+ answerstwoss.push(datatwo);
+ }
+
+
+ }
+
+ var arrc = option.concat(other);
+ var answers = answerstwoss.concat(answerstwos);
+ // 插入单选题
+ // var id
+ // try {
+ // id = newarrpoll[newarrpoll.length - 1].question.id + 1;
+ // } catch (e) {
+ // id = 1;
+ // }
+ questiontwo = {
+ // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
+ "id": null,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 1,
+ "question_title": object.question.question_title,
+ "question_type": 1,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ var insindex = null;
+ // if (poll_questionslength !== thiss.state.Insertposition) {
+ // insindex = newarrpoll[thiss.state.Insertposition].question.id;
+ // }
+ if (this.state.problemtopicbool === true) {
+ insindex = this.state.problemtopic;
+ }
+ this.createquestionsandanswers(object, 1, arrc, null, 0, 0, insindex);
+ // newarrpoll.push(question);
+ newarrpoll.splice(thiss.state.Insertposition, 0, question);
+
+ } else if (object.question.question_type === 2) {
+ //插入多选题
+ if (object.question.max_choices < object.question.min_choices) {
+ this.props.showNotification(`可选的最大限制不能小于最小限制`);
+
+ return;
+ }
+
+ var questiontwo = {};
+ var other = [];
+ var option = [];
+ var answerstwos = [];
+ var answerstwoss = [];
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ other.push(object.question.answers[y].answer_text);
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ option.push(object.question.answers[y].answer_text)
+ answerstwoss.push(datatwo);
+ }
+ }
+ var arrc = option.concat(other);
+ var answers = answerstwoss.concat(answerstwos);
+ // var id
+ // try {
+ // id = newarrpoll[newarrpoll.length - 1].question.id + 1;
+ // } catch (e) {
+ // id = 1;
+ // }
+ questiontwo = {
+ "id": null,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 2,
+ "question_title": object.question.question_title,
+ "question_type": 2,
+ "max_choices": object.question.max_choices,
+ "min_choices": object.question.min_choices,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ var insindex = null;
+ if (this.state.problemtopicbool === true) {
+ insindex = this.state.problemtopic;
+ }
+ this.createquestionsandanswers(object, 2, arrc, null, object.question.max_choices, object.question.min_choices, insindex);
+ //插入多选题
+ // if (object.question.max_choices > arrc.length) {
+ // // console.log("选择题的最大可选项不能大于选项数")
+ // this.props.showNotification(`选择题的最大可选项不能大于选项数`);
+ //
+ // return;
+ // }
+ // if (object.question.min_choices === 0) {
+ // // console.log("选择题的最大可选项不能小于2项目")
+ // this.props.showNotification(`选择题的最大可选项不能小于2项目`);
+ //
+ // return;
+ //
+ // }
+ // newarrpoll.push(question);
+ newarrpoll.splice(thiss.state.Insertposition, 0, question);
+ } else if (object.question.question_type === 3) {
+ //插入主观题
+ var answers = [];
+ var questiontwo = {};
+ var answerstwos = [];
+ var answerstwoss = [];
+ if (object.question.answers.length > 0) {
+ for (var y = 0; y < object.question.answers.length; y++) {
+ var answerstwo;
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ answerstwoss.push(datatwo);
+ }
+ }
+ }
+
+ answers = answerstwoss.concat(answerstwos);
+ // var id
+ // try {
+ // id = newarrpoll[newarrpoll.length - 1].question.id + 1;
+ // } catch (e) {
+ // id = 1;
+ // }
+ questiontwo = {
+ "id": null,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 3,
+ "question_title": object.question.question_title,
+ "question_type": 3,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ // var insindex = null;
+ // if (poll_questionslength !== thiss.state.Insertposition) {
+ // insindex = newarrpoll[thiss.state.Insertposition].question.id;
+ // }
+ //主观题不需要可选选项
+ var insindex = null;
+ if (this.state.problemtopicbool === true) {
+ insindex = this.state.problemtopic;
+ }
+ this.createquestionsandanswers(object, 3, null, null, 0, 0, insindex);
+ // newarrpoll.push(question);
+ newarrpoll.splice(thiss.state.Insertposition, 0, question);
+ }
+ //////////////////////////////////////////////////////////////////////////////////////////////////// 上面是新增
+ } else {
+ ///////////////////////////////////////////////////////////////////////////////////////////////////修改点了编辑
+ console.log("点了编辑")
+ var uuk = -1
+ //这个地方判断 点了编辑上面题目又把他删除了 保存的时候就只能是插入新增了
+ for (var uk = 0; uk < newarrpoll.length; uk++) {
+ if (object.question.id === newarrpoll[uk].question.id) {
+ uuk = uk;
+ }
+ }
+
+
+ var question = {};
+ if (object.question.question_type === 1) {
+ var questiontwo = {};
+ var other = [];
+ var option = [];
+ var answerstwos = [];
+ var answerstwoss = [];
+ ///////////////////////////daying
+ //这个装选项和其他的
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ other.push(object.question.answers[y].answer_text);
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ option.push(object.question.answers[y].answer_text)
+ answerstwoss.push(datatwo);
+ }
+
+
+ }
+ var arrc = option.concat(other);
+ var answers = answerstwoss.concat(answerstwos);
+ // 插入单选题
+ questiontwo = {
+ // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 1,
+ "question_title": object.question.question_title,
+ "question_type": 1,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ if (uuk !== -1) {
+ // console.log("修改")
+ this.edittotheserver(object, 1, arrc, null, 0, 0);
+ newarrpoll.splice(uuk, 1, question);
+ } else {
+ // console.log("他原来的删除掉了")
+ this.createquestionsandanswers(object, 1, arrc, null, 0, 0, object.question.id);
+ newarrpoll.push(question);
+ }
+ newarr[indexo].question.new = "new"
+ // console.log(newarrpoll)
+ } else if (object.question.question_type === 2) {
+ //插入多选题
+
+ if (object.question.max_choices < object.question.min_choices) {
+ this.props.showNotification('可选的最大限制不能小于最小限制!');
+
+ return;
+ }
+ var questiontwo = {};
+ var other = [];
+ var option = [];
+ var answerstwos = [];
+ var answerstwoss = [];
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ other.push(object.question.answers[y].answer_text);
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ option.push(object.question.answers[y].answer_text)
+ answerstwoss.push(datatwo);
+ }
+ }
+ var arrc = option.concat(other);
+ var answers = answerstwoss.concat(answerstwos);
+ questiontwo = {
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 2,
+ "question_title": object.question.question_title,
+ "question_type": 2,
+ "max_choices": object.question.max_choices,
+ "min_choices": object.question.min_choices,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ //插入多选题
+ // if (object.question.max_choices > arrc.length) {
+ // // console.log("选择题的最大可选项不能大于答案数")
+ // this.props.showNotification('选择题的最大可选项不能大于选项数!');
+ //
+ // return;
+ // }
+ // if (object.question.min_choices === 0) {
+ // // console.log("选择题的最大可选项不能小于2项目")
+ // this.props.showNotification('选择题的最大可选项不能小于2项目!');
+ //
+ // return;
+ //
+ // }
+ if (uuk !== -1) {
+ console.log("修改")
+ this.edittotheserver(object, 2, arrc, null, object.question.max_choices, object.question.min_choices);
+ newarrpoll.splice(uuk, 1, question);
+ } else {
+ console.log("删除")
+ this.createquestionsandanswers(object, 2, arrc, null, object.question.max_choices, object.question.min_choices, object.question.id);
+ newarrpoll.push(question);
+ }
+ console.log(newarrpoll)
+ newarr[indexo].question.new = "new"
+ } else if (object.question.question_type === 3) {
+ //插入主观题
+ var answers = [];
+ var questiontwo = {};
+
+ if (object.question.answers.length > 0) {
+ for (var y = 0; y < object.question.answers.length; y++) {
+ var answerstwo;
+ if (object.question.answers[y].answer_text === "其他") {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ } else {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ }
+ answers.push(answerstwo);
+ }
+ }
+ questiontwo = {
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 3,
+ "question_title": object.question.question_title,
+ "question_type": 3,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+
+ if (uuk !== -1) {
+ console.log("修改")
+ this.edittotheserver(object, 3, null, null, 0, 0);
+ newarrpoll.splice(uuk, 1, question);
+ } else {
+ console.log("删除")
+ this.createquestionsandanswers(object, 3, null, null, 0, 0, object.question.id);
+ newarrpoll.push(question);
+ }
+ console.log(newarrpoll)
+ newarr[indexo].question.new = "new"
+ }
+
+ }
+
+
+ //添加到上面列表中
+ //改变题目总数
+ if (object.question.question_type === 1) {
+ //单选题
+ this.state.mysingles = this.state.mysingles + 1;
+ } else if (object.question.question_type === 2) {
+ //多选题
+ this.state.mydoubles = this.state.mydoubles + 1;
+ } else if (object.question.question_type === 3) {
+ //主观题
+ this.state.mymainsint = this.state.mymainsint + 1;
+
+ }
+ this.setState({
+ // poll_questions: newarrpoll,
+ adddom: newarr,
+ problemtopic: null,
+ problemtopicbool: false,
+ // mysingles: this.state.mysingles,
+ // mydoubles: this.state.mydoubles,
+ // mymainsint: this.state.mymainsint
+ })
+
+ }
+
+
+ //保存 后期可以考虑和保存并继续 合并
+ //保存,即完成新建并退出本题编辑
+ // indexo 第几个数组
+ //object 单个数组数据
+ deleteadddomthree = (indexo, object) => {
+ // console.log("deleteadddom 349")
+ var thiss = this;
+ let arr = this.state.adddom;
+ let arrpoll = this.state.poll_questions;
+ let newarr = [...arr];
+ let newarrpoll = [...arrpoll];
+ var poll_questionslength = this.state.poll_questions.length; //获取单前问题最大长度
+ //选项内容不能为空
+ let max = 0;
+ let maxtie = newarr[indexo].question.answers.length;
+ //判断选项值是否不为空
+ for (var k = 0; k < newarr[indexo].question.answers.length; k++) {
+ try {
+ if (newarr[indexo].question.answers[k].answer_text != undefined) {
+ if (newarr[indexo].question.answers[k].answer_text === "") {
+ max = max + 1;
+ }
+ }
+ } catch (e) {
+ // console.log("PollNew281")
+ // console.log(e)
+ }
+ }
+ if (newarr[indexo].question.question_title === "") {
+ this.props.showNotification('题目不能为空!');
+ return
+ }
+ if (max > 0) {
+ if (object.question.question_type === 1) {
+ this.props.showNotification('选项内容不能为空!');
+ return
+ } else if (object.question.question_type === 2) {
+ this.props.showNotification('选项内容不能为空!');
+ return
+ }
+
+ }
+ if (maxtie < 2) {
+ if (object.question.question_type === 1) {
+ this.props.showNotification('选项不能少于2个!');
+ return
+ } else if (object.question.question_type === 2) {
+ this.props.showNotification('选项不能少于2个!');
+ return
+ }
+
+
+ }
+
+ if (object.question.question_type === 2) {
+ if (object.question.max_choices > 0) {
+ if (object.question.min_choices < 2) {
+ this.props.showNotification(`可选最小不能少于2个`);
+ return;
+ }
+ }
+ }
+ if (object.question.new === "new") {
+ ///////////////////////////////////////////////////////////////////新增模式
+ // 根据数组里面的new 来确定是否是新增还是 修改
+ //添加道数组上
+ //不能共用数组 所以自己写个新数组 然后push 上面卷子中
+ var question = {};
+ if (object.question.question_type === 1) {
+ var questiontwo = {};
+ var other = [];
+ var option = [];
+ var answerstwos = [];
+ var answerstwoss = [];
+ ///////////////////////////daying
+ // 这个是装选项和其他的
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ other.push(object.question.answers[y].answer_text);
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ option.push(object.question.answers[y].answer_text)
+ answerstwoss.push(datatwo);
+ }
+ }
+ var arrc = option.concat(other);
+ var answers = answerstwoss.concat(answerstwos);
+ // 插入单选题'
+ // var id;
+ // try {
+ // id = newarrpoll[newarrpoll.length - 1].question.id + 1
+ // } catch (e) {
+ // id = 1;
+ // }
+ questiontwo = {
+ // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
+ "id": null,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 1,
+ "question_title": object.question.question_title,
+ "question_type": 1,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ //获取指定id 号 用来插入,如果不是就是在最后添加
+
+ //执行新增操作
+ var insindex = null;
+ if (this.state.problemtopicbool === true) {
+ insindex = this.state.problemtopic;
+ }
+ this.createquestionsandanswers(object, 1, arrc, null, 0, 0, insindex);
+ newarrpoll.splice(thiss.state.Insertposition, 0, question);
+ } else if (object.question.question_type === 2) {
+ //插入多选题
+ if (object.question.max_choices < object.question.min_choices) {
+ this.props.showNotification(`可选的最大限制不能小于最小限制`);
+
+ return;
+ }
+
+ var questiontwo = {};
+ var other = [];
+ var option = [];
+ var answerstwos = [];
+ var answerstwoss = [];
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ other.push(object.question.answers[y].answer_text);
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ option.push(object.question.answers[y].answer_text)
+ answerstwoss.push(datatwo);
+ }
+ }
+ var arrc = option.concat(other);
+ var answers = answerstwoss.concat(answerstwos);
+
+ questiontwo = {
+ "id": null,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 2,
+ "question_title": object.question.question_title,
+ "question_type": 2,
+ "max_choices": object.question.max_choices,
+ "min_choices": object.question.min_choices,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+
+ var insindex = null;
+ if (this.state.problemtopicbool === true) {
+ insindex = this.state.problemtopic;
+ }
+ this.createquestionsandanswers(object, 2, arrc, null, object.question.max_choices, object.question.min_choices, insindex);
+ //插入多选题
+ // if (object.question.max_choices > arrc.length) {
+
+ newarrpoll.splice(thiss.state.Insertposition, 0, question);
+ } else if (object.question.question_type === 3) {
+ //插入主观题
+ var answers = [];
+ var questiontwo = {};
+ var answerstwos = [];
+ var answerstwoss = [];
+ if (object.question.answers.length > 0) {
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ answerstwoss.push(datatwo);
+ }
+ }
+ }
+ answers = answerstwoss.concat(answerstwos);
+
+ questiontwo = {
+ "id": null,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 3,
+ "question_title": object.question.question_title,
+ "question_type": 3,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ //主观题不需要可选选项
+
+ var insindex = null;
+ if (this.state.problemtopicbool === true) {
+ insindex = this.state.problemtopic;
+ }
+ this.createquestionsandanswers(object, 3, null, null, 0, 0, insindex);
+ // newarrpoll.push(question);
+ newarrpoll.splice(thiss.state.Insertposition, 0, question);
+ }
+ ///////////////////////////////////////////////////////////////////新增模式
+ } else {
+ //////////////////////////////////////////////////////////////////////////////修改模式
+ //修改
+ var uuk = -1
+ for (var uk = 0; uk < newarrpoll.length; uk++) {
+ if (object.question.id === newarrpoll[uk].question.id) {
+ uuk = uk;
+ console.log("删除了数据=-09876543234567890-111111111111")
+ }
+ }
+
+
+ var question = {};
+ if (object.question.question_type === 1) {
+ var questiontwo = {};
+ var other = [];
+ var option = [];
+ var answerstwos = [];
+ var answerstwoss = [];
+ ///////////////////////////daying
+ //这个装选项和其他的
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ other.push(object.question.answers[y].answer_text);
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ option.push(object.question.answers[y].answer_text)
+ answerstwoss.push(datatwo);
+ }
+ }
+ var arrc = option.concat(other);
+ var answers = answerstwoss.concat(answerstwos);
+ // 插入单选题
+ questiontwo = {
+ // "id": this.state.poll_questions[arr.length - 1].question.id + 1 + arrr.length,
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 1,
+ "question_title": object.question.question_title,
+ "question_type": 1,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ if (uuk !== -1) {
+ console.log("修改")
+ this.edittotheserver(object, 1, arrc, null, 0, 0);
+ newarrpoll.splice(uuk, 1, question);
+ } else {
+ console.log("删除")
+ this.createquestionsandanswers(object, 1, arrc, null, 0, 0, object.question.id);
+ newarrpoll.push(question);
+ }
+ console.log(newarrpoll)
+ } else if (object.question.question_type === 2) {
+ //插入多选题
+ if (object.question.max_choices < object.question.min_choices) {
+ this.props.showNotification(`可选的最大限制不能小于最小限制`);
+
+ return;
+ }
+ var questiontwo = {};
+ var other = [];
+ var option = [];
+ var answerstwos = [];
+ var answerstwoss = [];
+ for (var y = 0; y < object.question.answers.length; y++) {
+ if (object.question.answers[y].answer_text === "其他") {
+ var dataone = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ other.push(object.question.answers[y].answer_text);
+ answerstwos.push(dataone);
+ } else {
+ var datatwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ option.push(object.question.answers[y].answer_text)
+ answerstwoss.push(datatwo);
+ }
+ }
+ var arrc = option.concat(other);
+ var answers = answerstwoss.concat(answerstwos);
+ questiontwo = {
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 2,
+ "question_title": object.question.question_title,
+ "question_type": 2,
+ "max_choices": object.question.max_choices,
+ "min_choices": object.question.min_choices,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ //插入多选题
+ if (uuk !== -1) {
+ console.log("修改")
+ this.edittotheserver(object, 2, arrc, null, object.question.max_choices, object.question.min_choices);
+ newarrpoll.splice(uuk, 1, question);
+ } else {
+ console.log("删除")
+ this.createquestionsandanswers(object, 2, arrc, null, object.question.max_choices, object.question.min_choices, object.question.id);
+ newarrpoll.push(question);
+ }
+ console.log(newarrpoll)
+
+ } else if (object.question.question_type === 3) {
+ //插入主观题
+ var answers = [];
+ var questiontwo = {};
+
+ if (object.question.answers.length > 0) {
+ for (var y = 0; y < object.question.answers.length; y++) {
+ var answerstwo;
+ if (object.question.answers[y].answer_text === "其他") {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ } else {
+ answerstwo = {
+ "answer_id": object.question.answers[y].answer_id,
+ "answer_position": object.question.answers[y].answer_position,
+ "answer_text": object.question.answers[y].answer_text
+ }
+ }
+ answers.push(answerstwo);
+ }
+ }
+ questiontwo = {
+ "id": object.question.id,
+ "is_necessary": object.question.is_necessary,
+ "question_number": 3,
+ "question_title": object.question.question_title,
+ "question_type": 3,
+ "new": "",
+ "answers": answers
+ };
+ question = {"question": questiontwo};
+ if (uuk !== -1) {
+ console.log("修改")
+ this.edittotheserver(object, 3, null, null, 0, 0);
+ newarrpoll.splice(uuk, 1, question);
+ } else {
+ console.log("删除")
+ this.createquestionsandanswers(object, 3, null, null, 0, 0, object.question.id);
+ newarrpoll.push(question);
+ }
+ console.log(newarrpoll)
+
+ }
+
+ }
+
+
+ //添加到上面列表中
+ //改变题目总数
+ if (object.question.question_type === 1) {
+ //单选题
+ this.state.mysingles = this.state.mysingles + 1;
+ } else if (object.question.question_type === 2) {
+ //多选题
+ this.state.mydoubles = this.state.mydoubles + 1;
+ } else if (object.question.question_type === 3) {
+ //主观题
+ this.state.mymainsint = this.state.mymainsint + 1;
+
+ }
+
+ //这里更新数据
+ if (this.state.q_countst == 1) {
+ this.setState({
+ q_countst: 0,
+ })
+ }
+ this.deleteadddom(indexo);
+ // console.log(indexo)
+ }
+
+
+ ////新增到服务器中
+ createquestionsandanswers = (object, number, option, other, max_choices, min_choices, insert_id) => {
+ var thiss = this;
+ var poll_id = this.state.pollid;
+ var urlly = `/polls/${poll_id}/poll_questions.json`
+ var max_choicess = null;
+ var min_choicess = null;
+ if (max_choices === 0 && min_choices === 0) {
+ max_choicess = null;
+ min_choicess = null;
+ } else {
+ max_choicess = max_choices;
+ min_choicess = min_choices;
+ }
+ axios.post(urlly, {
+ question_title: object.question.question_title,
+ question_type: number,
+ is_necessary: object.question.is_necessary,
+ max_choices: max_choicess,
+ min_choices: min_choicess,
+ question_answers: option,
+ question_other_answer: null,
+ insert_id: insert_id
+ }).then((result) => {
+ // try {
+ if (result !== undefined) {
+ if (result.data.status === 0) {
+ this.props.showNotification(`已完成`);
+ thiss.thisinitializationdatanew();
+ // console.log("确认创建问题")
+ // console.log(result)
+ // try {
+ // if (result.data.status === 0) {
+ // console.log("确认创建问题")
+ // console.log(JSON.stringify(result.data))
+ // }
+ // } catch (e) {
+ //
+ // }
+ }
+ }
+ // } catch (e) {
+ //
+ // }
+
+ })
+
+
+ }
+ ///编辑修改到服务器当中
+ edittotheserver = (object, number, option, other, max_choices, min_choices) => {
+ console.log("调用了edittotheserver")
+ var url = `/poll_questions/${object.question.id}.json`
+ var thiss = this;
+ axios.put(url, {
+ // debug: true,
+ question_title: object.question.question_title,
+ question_type: number,
+ is_necessary: object.question.is_necessary,
+ max_choices: max_choices,
+ min_choices: min_choices,
+ question_answers: option,
+ question_other_answer: null,
+ }).then((result) => {
+ try {
+ if (result.data.status === 0) {
+ this.props.showNotification(`编辑题目成功`);
+ thiss.thisinitializationdatanew();
+ }
+ } catch (e) {
+ // console.log("调用了edittotheserver")
+ console.log(e)
+ }
+ })
+ }
+
+ //删除到服务器当中
+ eletetoserver = (pollid, newarr, type, index) => {
+ console.log("调用了eletetoserver")
+ var id = pollid;
+ var url = `/poll_questions/${id}.json`
+ let {mysingles, mydoubles, mymainsint} = this.state
+ var thiss = this;
+
+ axios
+ .delete(url, {})
+ .then(function (response) {
+ console.log(response)
+ if (response === undefined) {
+ return;
+ }
+ if (response.data.message === "删除成功") {
+ thiss.props.showNotification(`删除成功`);
+
+ newarr.splice(index, 1);
+ if (type === 1) {
+ mysingles = mysingles - 1;
+ } else if (type === 2) {
+ mydoubles = mydoubles - 1;
+
+ } else if (type === 3) {
+ mymainsint = mymainsint - 1;
+
+ }
+ // thiss.setState({
+ // poll_questions: newarr,
+ // mysingles: mysingles,
+ // mydoubles: mydoubles,
+ // mymainsint: mymainsint
+ // });
+ thiss.thisinitializationdatanew();
+ }
+ })
+ }
+
+ //上下移到服务器中
+ Upanddownmovementof = (bool, poll_question_id) => {
+ // console.log("调用了Upanddownmovementofr")
+ // console.log(poll_question_id)
+ var thiss = this;
+ if (bool === true) {
+ var url = `/poll_questions/${poll_question_id}/up_down.json`;
+ axios.post(url, {
+ opr: "up",
+ }).then((result) => {
+ try {
+ if (result.data.status === 0) {
+ this.props.showNotification(`上移成功`);
+ thiss.thisinitializationdatanew();
+ }
+ // console.log(JSON.stringify(result))
+ } catch (e) {
+ console.log("上移题目成功 错误")
+ console.log(e)
+ }
+
+ })
+ } else {
+ var url = `/poll_questions/${poll_question_id}/up_down.json`;
+ axios.post(url, {
+ opr: "down",
+ }).then((result) => {
+ try {
+ if (result.data.status === 0) {
+ // message.success("下移题目成功", 1)
+ this.props.showNotification(`下移成功`);
+ thiss.thisinitializationdatanew();
+ }
+ // console.log(JSON.stringify(result))
+ } catch (e) {
+ console.log("下移题目成功 错误")
+ console.log(e)
+ }
+ })
+ }
+
+ }
+
+ //删除编辑新增条目
+ //id 条目的唯一id
+ //i 为要删除的子条目
+ deleteentrys = (id, i, stirngname) => {
+ console.log(id)
+ console.log(stirngname);
+ var arrtwoy = this.state.adddom;
+ let newarrtwoy = [...arrtwoy];
+ for (var k = 0; k < newarrtwoy.length; k++) {
+ if (newarrtwoy[k] != undefined) {
+ if (newarrtwoy[k].question.id === id) {
+ for (var c = 0; c < newarrtwoy[k].question.answers.length; c++) {
+ if (c === i) {
+ // console.log("删除了")
+ // console.log(c)
+ newarrtwoy[k].question.answers.splice(c, 1);
+ }
+ }
+ }
+ }
+ }
+ if (stirngname === true) {
+ console.log(stirngname);
+ this.setState({
+ newoption: false,
+ adddom: newarrtwoy,
+
+ })
+ } else {
+ console.log(stirngname);
+ this.setState({
+ adddom: newarrtwoy,
+ });
+ }
+
+
+ }
+
+
+ // 新增选项
+ ewoption = (id, object) => {
+ console.log("ewoption 440")
+ console.log("是否是新建题目还是编辑")
+ // console.log(object.question.new)
+
+
+ let arrtwo = this.state.adddom;
+ let newarrtwo = [...arrtwo];
+
+
+ for (var k = 0; k < newarrtwo.length; k++) {
+ // console.log(arrtwo[k].question.id);
+ if (newarrtwo[k] != undefined) {
+ if (newarrtwo[k].question.id === id) {
+ var data = {
+ "answer_id": newarrtwo[k].question.answers.length + 1,
+ "answer_position": newarrtwo[k].question.answers.length + 1,
+ "answer_text": ""
+ };
+ //向头部添加元素
+ // newarrtwo[k].question.answers.unshift(data);
+ //如果有其他这一项就删除掉
+ if (newarrtwo[k].question.answers.length > 0) {
+ for (var o = 0; o < newarrtwo[k].question.answers.length; o++) {
+ if (newarrtwo[k].question.answers[o].answer_text != undefined) {
+ if (newarrtwo[k].question.answers[o].answer_text === "其他") {
+ newarrtwo[k].question.answers.splice(o, 0, data);
+ this.setState({
+ adddom: newarrtwo
+ })
+ return
+ } else {
+ if (o === newarrtwo[k].question.answers.length - 1) {
+ newarrtwo[k].question.answers.push(data);
+ this.setState({
+ adddom: newarrtwo
+ })
+ return
+ }
+ }
+ }
+ }
+ } else {
+ newarrtwo[k].question.answers.push(data);
+ this.setState({
+ adddom: newarrtwo
+ })
+ }
+
+ }
+ }
+ }
+
+ }
+
+
+ swapArray = (arr, index1, index2) => {
+ arr[index1] = arr.splice(index2, 1, arr[index1])[0];
+ return arr;
+ }
+
+ //新增其他选项
+ addanotheroption = (id) => {
+ console.log("addanotheroption 457")
+ let arrtwo = this.state.adddom;
+ let newarrtwo = [...arrtwo];
+ console.log(newarrtwo)
+ for (var k = 0; k < newarrtwo.length; k++) {
+ if (newarrtwo[k] != undefined) {
+ if (newarrtwo[k].question.id === id) {
+ var data = {
+ "answer_id": newarrtwo[k].question.answers.length + 1,
+ "answer_position": newarrtwo[k].question.answers.length + 1,
+ "answer_text": "其他"
+ };
+ newarrtwo[k].question.answers.push(data);
+ }
+ }
+ }
+ this.setState({
+ adddom: newarrtwo,
+ newoption: true,
+ })
+ }
+
+
+ //点击向上排序按钮事件
+ handleClickBySortUp = (index, object) => {
+ console.log("handleClickBySortUp 521")
+ let arr = this.state.poll_questions;
+ let newarr = [...arr];
+ console.log(newarr)
+ if (index != 0) {
+ this.Upanddownmovementof(true, object.question.id);
+ let temp = newarr[index - 1];
+ newarr[index - 1] = newarr[index];
+ newarr[index] = temp;
+ this.setState({
+ poll_questions: newarr,
+ });
+ }
+ }
+
+ //点击向下排序按钮事件
+ handleClickBySortDown = (index, object) => {
+ console.log("handleClickBySortDown 536")
+ let arr = this.state.poll_questions;
+ let newarr = [...arr];
+ //
+ if (index != newarr.length - 1) {
+ this.Upanddownmovementof(false, object.question.id);
+ let temp = newarr[index + 1];
+ newarr[index + 1] = newarr[index];
+ newarr[index] = temp;
+ this.setState({
+ poll_questions: newarr,
+ });
+ } else {
+ console.log("2222index==arr.length");
+ console.log(this.state.poll_questions);
+ }
+ }
+
+ //点击删除按钮事件
+ handleClickByDelete = (type, index, object) => {
+ console.log("handleClickByDelete 556")
+ console.log("object.question.id")
+ console.log(object.question.id)
+ let arr = this.state.poll_questions;
+ let newarr = [...arr];
+ this.eletetoserver(object.question.id, newarr, type, index)
+
+ }
+
+ // 数字输入监听
+ //e为获取组件对象
+ //i外层数组
+ //k为内层数组
+ handleInputChanges = (e, i, k) => {
+ console.log("handleInputChanges 612")
+
+ let value = e.target.value;//取到input的数据
+ console.log("handleInputChanges value is :" + value);
+ console.log(k);
+ let arr = this.state.adddom;
+ let newarr = [...arr];
+
+ newarr[i].question.answers[k].answer_text = value
+ this.setState({
+ adddom: newarr
+ })
+
+ }
+
+ //标题输入监听
+ handleInputTopic = (e, i) => {
+ console.log("handleInputTopic 633")
+
+ let value = e.target.value;//取到input的数据
+ console.log("handleInputTopic value is :" + value);
+ console.log(i);
+ let arr = this.state.adddom;
+ let newarr = [...arr];
+ newarr[i].question.question_title = value
+ this.setState({
+ adddom: newarr
+ })
+ }
+
+ //最小值
+ handleGradationGroupChangee = (value, index, max, length) => {
+
+ debugger
+ var minbool = false;
+ var maxbool = false;
+ let arr = this.state.adddom;
+ if (parseInt(value) === 0 || parseInt(value) === "0" || parseInt(value) === null || parseInt(value) === undefined || parseInt(value) < 1) {
+ minbool = true;
+ }
+ if (max === 0 || max === "0" || max === null || max === undefined) {
+ maxbool = true;
+ }
+
+ if (minbool === true && maxbool === true) {
+ for (var i = 0; i < arr.length; i++) {
+ if (index === i) {
+ arr[i].question.min_choices = parseInt(value);
+ }
+ }
+ this.setState({
+ adddom: arr
+ })
+ } else {
+ for (var i = 0; i < arr.length; i++) {
+ if (index === i) {
+ arr[i].question.min_choices = parseInt(value);
+ arr[i].question.max_choices = length;
+ }
+ }
+ this.setState({
+ adddom: arr
+ })
+ }
+
+ }
+
+ //最大值
+ handleGradationGroupChangeee = (value, index) => {
+
+ let arr = this.state.adddom;
+ for (var i = 0; i < arr.length; i++) {
+ if (index === i) {
+ arr[i].question.max_choices = parseInt(value);
+ }
+ }
+ this.setState({
+ adddom: arr
+ })
+ // console.log(this.state.adddom);
+ }
+
+ //提交题目//没有就创建新的题库,新建问题和保存题目不一样不能同时保存 这里只是新建 和编辑 标题和须知
+ submitQuestionnaire = () => {
+ console.log("调用了submitQuestionnaire")
+ if (this.state.Newedit === true) {
+
+ this.newword();
+
+ } else {
+ if (this.state.polls_nametest === undefined || this.state.polls_nametest === "") {
+ this.props.showNotification("请输入标题");
+ return
+ }
+
+ if (this.state.polls_descriptiontest.length > 100) {
+
+ }
+ var pollid;
+ if (this.state.pollid === undefined) {
+ pollid = this.props.match.params.pollid;
+ } else {
+ pollid = this.state.pollid;
+ }
+
+
+ var url = `/polls/${pollid}.json`;
+ axios.put(url, {
+ polls_name: this.state.polls_nametest,
+ polls_description: this.state.polls_descriptiontest
+ }).then((result) => {
+ try {
+ // console.log(JSON.stringify(result))
+ if (result.data.status === 0) {
+ // console.log("更新题目成功")
+ // this.props.showNotification("保存成功");
+ this.props.history.push(`/courses/${this.props.match.params.coursesId}/polls/${pollid}/detail?tab=2`)
+ }
+ } catch (e) {
+
+ }
+ })
+ }
+ }
+
+ cancelmodel = () => {
+
+ this.setState({
+ Modalstype: false,
+ Modalstopval: "",
+ ModalsBottomval: "",
+ })
+
+ }
+ savedelete = (question_type, index, item) => {
+ console.log("savedelete");
+ this.handleClickByDelete(question_type, index, item);
+ this.setState({
+ Modalstype: false,
+ Modalstopval: "",
+ ModalsBottomval: "",
+ })
+ }
+ // 问题的类型,1单选题,2为多选题,3为主观题
+ showDeleteConfirm = (question_type, index, item) => {
+ this.setState({
+ Modalstype: true,
+ Modalstopval: "是否确认删除?",
+ ModalsBottomval: "",
+ ModalCancel: this.cancelmodel,
+ ModalSave: () => this.savedelete(question_type, index, item),
+ })
+
+ }
+ //必答选项
+ onCheckAllChange = (e, index) => {
+ console.log("onCheckAllChange");
+ console.log(e.target.checked);
+ // console.log(e.target.value);
+ let arr = this.state.adddom;
+ for (var i = 0; i < arr.length; i++) {
+ if (index === i) {
+ if (e.target.checked === true) {
+ arr[i].question.is_necessary = 1;
+
+ } else {
+ arr[i].question.is_necessary = 0;
+ }
+ }
+ }
+ this.setState({
+ adddom: arr
+ })
+ }
+
+ //重新编辑标题和须知
+ adddomeditit = () => {
+ if (this.state.mysave === true) {
+ this.setState({
+ mysave: false,
+ readOnlys: "readOnly",
+ storagedesc:this.state.polls_nametest,
+ storagedesctwo:this.state.polls_descriptiontest,
+ })
+ } else if (this.state.mysave === false) {
+ this.setState({
+ mysave: true,
+ readOnlys: "",
+ storagedesc:this.state.polls_nametest,
+ storagedesctwo:this.state.polls_descriptiontest,
+ })
+ }
+ }
+ //取消保存
+ onSaveExercisetwo = () => {
+ if (this.state.mysave === true) {
+ this.setState({
+ mysave: false,
+ Newedit: false,
+ readOnlys: "readOnly",
+ polls_nametest:this.state.storagedesc,
+ polls_descriptiontest:this.state.storagedesctwo,
+ })
+ } else {
+ this.setState({
+ mysave: false,
+ Newedit: false,
+ readOnlys: "readOnly",
+ polls_nametest:this.state.storagedesc,
+ polls_descriptiontest:this.state.storagedesctwo,
+ })
+ }
+ }
+ // 创建问卷
+ onSaveExercise = () => {
+ if (this.state.Newedit === true) {
+
+ if (this.state.polls_nametest === undefined || this.state.polls_nametest === "") {
+ this.props.showNotification(`请输入标题`);
+ return
+ }
+ let coursesId = this.props.match.params.coursesId;
+ const urlls = `/courses/${coursesId}/polls.json`
+ axios.post(urlls, {
+ polls_name: this.state.polls_nametest,
+ polls_description: this.state.polls_descriptiontest
+ }).then((result) => {
+ if (result === undefined) {
+ return;
+ }
+ this.state.Newedit === false;
+ this.props.showNotification(`问卷创建成功!`);
+ this.setState({
+ pollid: result.data.data.id,
+ Newedit: false,
+ mysave: false,
+ readOnlys: "readOnly",
+ cancellation: false,
+ })
+
+
+ })
+ } else {
+ if (this.state.polls_nametest === undefined || this.state.polls_nametest === "") {
+ this.props.showNotification("请输入标题");
+ return
+ }
+
+ var pollid;
+ if (this.state.pollid === undefined) {
+ pollid = this.props.match.params.pollid;
+ } else {
+ pollid = this.state.pollid;
+ }
+
+
+ var url = `/polls/${pollid}.json`;
+ axios.put(url, {
+ polls_name: this.state.polls_nametest,
+ polls_description: this.state.polls_descriptiontest
+ }).then((result) => {
+ if (result !== undefined) {
+ this.props.showNotification(`问卷更新成功!`);
+ this.setState({
+ mysave: false,
+ readOnlys: "readOnly",
+ })
+ }
+
+ })
+ }
+
+ }
+
+ //试图
+ render() {
+ let {
+ addonAfter,
+ user_permission,
+ polls_status,
+ Modalstype,
+ mysave,
+ readOnlys,
+ newoption,
+ cancellation,
+ } = this.state
+ //获取老师权限
+ // console.log("[`${maps[polls_status && polls_status]}`]]");
+ // console.log(polls_status);
+ // console.log([[`${maps[polls_status && polls_status]}`]] + "");
+
+ const IsAdmin = this.props.isAdmin();
+ const {getFieldDecorator} = this.props.form;
+ const formItemLayout = {
+ labelCol: {
+ xs: {span: 24},
+ // sm: { span: 8 },
+ sm: {span: 24},
+ },
+ wrapperCol: {
+ xs: {span: 24},
+ // sm: { span: 16 },
+ sm: {span: 24},
+ },
+ };
+
+ const radioStyle = {
+ display: 'block',
+ height: '30px',
+ lineHeight: '30px',
+ };
+
+ // console.log(this.state.projects===undefined?"":this.state.projects.poll_questions)
+ var displaymysave = (mysave === true) ? "" : "display:none;";
+ return (
+
+ {/*提示*/}
+ {Modalstype && Modalstype === true ?
: ""}
+
+
+ {this.props.coursedata.name}
+ >
+ 问卷
+ >
+ {this.props.match.params.news === undefined ? "新建" : this.props.match.params.news === "new" ? "新建" : "编辑"}
+
+
+
{this.props.match.params.news === undefined ? "新建问卷" : this.props.match.params.news === "new" ? "新建问卷" : "编辑问卷"}
+
返回
+
+
+ {/*
*/}
+
+
+
+ )
+ }
+
+}
+
+const WrappedPollNew = Form.create({name: 'taskPollNew'})(PollNew);
+// RouteHOC()
export default (WrappedPollNew);
\ No newline at end of file
diff --git a/public/react/src/modules/courses/shixunHomework/Listofworks.js b/public/react/src/modules/courses/shixunHomework/Listofworks.js
index 5a7aa56ae..8a9a0a53f 100644
--- a/public/react/src/modules/courses/shixunHomework/Listofworks.js
+++ b/public/react/src/modules/courses/shixunHomework/Listofworks.js
@@ -1377,7 +1377,7 @@ class Listofworks extends Component {
classroom: game_list[i].score,
complete_status: game_list[i].complete_status,
})
- experience=game_list[i].complete_status+experience;
+ experience=game_list[i].score+experience;
if(game_list[i].complete_status === 2 || game_list[i].complete_status===3){
boolgalist=false;
diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js
index d0628930f..29af983e5 100644
--- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js
+++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js
@@ -394,7 +394,7 @@ class Listofworksstudentone extends Component {
classroom: game_list[i].score,
complete_status: game_list[i].complete_status,
})
- experience=game_list[i].complete_status+experience;
+ experience=game_list[i].score+experience;
if(game_list[i].complete_status === 2 || game_list[i].complete_status===3){
boolgalist=false;
diff --git a/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js b/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js
index 61b066580..7d34eb9a1 100644
--- a/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js
+++ b/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js
@@ -52,6 +52,26 @@ class TraineetraininginformationModal extends Component {
// this.seacthdata();
}
+ componentWillReceiveProps(nextProps) {
+ // console.log("46");
+ // console.log(nextProps);
+ // console.log(this.props);
+ if (nextProps.boolgalist != this.props.boolgalist) {
+ // console.log("50");
+ // console.log(nextProps.user);
+ if (nextProps.boolgalist !== undefined) {
+ // console.log("53");
+ // console.log(nextProps.user);
+ this.setState({
+ boolgalist: nextProps.boolgalist,
+ })
+ }
+
+
+ }
+
+
+ }
LimitNumber=(txt)=> {
var str = txt;
if(str.length>25){
@@ -61,7 +81,7 @@ class TraineetraininginformationModal extends Component {
}
render() {
var columns;
- if(this.props.boolgalis&&this.props.boolgalist === true) {
+ if(this.state.boolgalist&&this.state.boolgalist === true) {
columns = [
{
title: '关卡',
diff --git a/public/react/src/modules/tpm/newshixuns/Newshixuns.js b/public/react/src/modules/tpm/newshixuns/Newshixuns.js
index 895b5dd7f..aa5b62a0a 100644
--- a/public/react/src/modules/tpm/newshixuns/Newshixuns.js
+++ b/public/react/src/modules/tpm/newshixuns/Newshixuns.js
@@ -1,1191 +1,1195 @@
-import React, {Component} from 'react';
-
-import {TPMIndexHOC} from '../TPMIndexHOC';
-
-import {SnackbarHOC} from 'educoder';
-
-import {Input, Select, Radio, Checkbox, Modal, Icon, DatePicker,Upload,Button,message,Form} from 'antd';
-
-// import "antd/dist/antd.css";
-
-import locale from 'antd/lib/date-picker/locale/zh_CN';
-
-import axios from 'axios';
-
-import './css/Newshixuns.css';
-
-import {getUrl} from 'educoder'
-
-let path = getUrl("/editormd/lib/")
-
-const $ = window.$;
-
-let timeout;
-
-let currentValue;
-
-const Option = Select.Option;
-
-const RadioGroup = Radio.Group;
-const confirm = Modal.confirm;
-// 恢复数据
-function md_rec_data(k, mdu, id, editor) {
- if (window.sessionStorage.getItem(k + mdu) !== null) {
- editor.setValue(window.sessionStorage.getItem(k + mdu));
- md_clear_data(k, mdu, id);
- }
-}
-
-// 保存数据
-function md_add_data(k, mdu, d) {
- window.sessionStorage.setItem(k + mdu, d);
-}
-
-// 清空保存的数据
-function md_clear_data(k, mdu, id) {
- window.sessionStorage.removeItem(k + mdu);
- var id1 = "#e_tip_" + id;
- var id2 = "#e_tips_" + id;
- if (k == 'content') {
- $(id2).html("");
- } else {
- $(id1).html("");
- }
-}
-
-function md_elocalStorage(editor, mdu, id) {
- if (window.sessionStorage) {
- var oc = window.sessionStorage.getItem('content' + mdu);
- if (oc !== null) {
- $("#e_tips_" + id).data('editor', editor);
- var h = '您上次有已保存的数据,是否恢复 ? / 不恢复';
- $("#e_tips_" + id).html(h);
- }
- setInterval(function () {
- var d = new Date();
- var h = d.getHours();
- var m = d.getMinutes();
- var s = d.getSeconds();
- h = h < 10 ? '0' + h : h;
- m = m < 10 ? '0' + m : m;
- s = s < 10 ? '0' + s : s;
- if (editor.getValue().trim() != "") {
- md_add_data("content", mdu, editor.getValue());
- var id1 = "#e_tip_" + id;
- var id2 = "#e_tips_" + id;
-
- $(id1).html(" 数据已于 " + h + ':' + m + ':' + s + " 保存 ");
- $(id2).html("");
- }
- }, 10000);
-
- } else {
- $("#e_tip_" + id).after('您的浏览器不支持localStorage.无法开启自动保存草稿服务,请升级浏览器!');
- }
-}
-
-
-function create_editorMD(id, width, high, placeholder, imageUrl, callback) {
- var editorName = window.editormd(id, {
- width: width,
- height: high,
- path: path, // "/editormd/lib/"
-
- syncScrolling: "single",
- tex: true,
- tocm: true,
- emoji: true,
- taskList: true,
- codeFold: true,
- searchReplace: true,
- htmlDecode: "style,script,iframe",
- sequenceDiagram: true,
- autoFocus: false,
- toolbarIcons: function () {
- // Or return editormd.toolbarModes[name]; // full, simple, mini
- // Using "||" set icons align right.
- return ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear"]
- },
- toolbarCustomIcons: {
- testIcon: "",
- testIcon1: ""
- },
- //这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
- saveHTMLToTextarea: true,
- // 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
- dialogMaskOpacity: 0.6,
- placeholder: placeholder,
- imageUpload: true,
- imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
- imageUploadURL: imageUrl,//url
- onload: function () {
- // this.previewing();
- $("#" + id + " [type=\"latex\"]").bind("click", function () {
- editorName.cm.replaceSelection("```latex");
- editorName.cm.replaceSelection("\n");
- editorName.cm.replaceSelection("\n");
- editorName.cm.replaceSelection("```");
- var __Cursor = editorName.cm.getDoc().getCursor();
- editorName.cm.setCursor(__Cursor.line - 1, 0);
- });
-
- $("#" + id + " [type=\"inline\"]").bind("click", function () {
- editorName.cm.replaceSelection("$$$$");
- var __Cursor = editorName.cm.getDoc().getCursor();
- editorName.cm.setCursor(__Cursor.line, __Cursor.ch - 2);
- editorName.cm.focus();
- });
- $("[type=\"inline\"]").attr("title", "行内公式");
- $("[type=\"latex\"]").attr("title", "多行公式");
-
- md_elocalStorage(editorName, `memoNew_${id}`, "memoNew");
-
- callback && callback()
- }
- });
- return editorName;
-}
-
-
-class Newshixuns extends Component {
- constructor(props) {
- super(props)
- this.state = {
- fileList: [],
- newshixunlist: undefined,
- departmentslist: undefined,
- name: "",
- main_type: "",
- small_type: "",
- trainee: "",
- webssh: 0,
- use_scope: 0,
- can_copy: "",
- scope_partment: undefined,
- vnc: "",
- scopetype: false,
- postapplyvisible: false,
- sendsure_applyvalue: undefined,
- postapplytitle: false,
- shixun_nametype: false,
- main_types: false,
- trainee_types: false,
- SelectTheCommandtype: false,
- opers: false,
- operss: false,
- TimePickervalue: "",
- opensmail: false,
- onSearchvalue: "",
- scope_partmenttype: false,
- languagewrite: undefined,
- systemenvironment:undefined,
- testcoderunmode:undefined,
- file:undefined,
- }
- }
-
- initMD(initValue) {
- this.contentChanged = false;
- const placeholder = "";
- // amp;
- // 编辑时要传memoId
- const imageUrl = `/api/attachments.json`;
- // 创建editorMd
-
- const taskpass_editormd = create_editorMD("memoMD", '100%', 400, placeholder, imageUrl, () => {
- setTimeout(() => {
- taskpass_editormd.resize()
- taskpass_editormd.cm && taskpass_editormd.cm.refresh()
- }, 500)
-
- if (initValue) {
- taskpass_editormd.setValue(initValue)
- }
- taskpass_editormd.cm.on("change", (_cm, changeObj) => {
- // console.log('....contentChanged')
- this.contentChanged = true;
- })
- });
- this.taskpass_editormd = taskpass_editormd;
- window.taskpass_editormd = taskpass_editormd;
-
- }
-
- componentDidMount() {
- let newshixunUrl = `/shixuns/new.json`;
- axios.get(newshixunUrl).then((response) => {
- if (response.status === 200) {
- if (response.data.status === 403 || response.data.status === 401 || response.data.status === 500) {
-
- } else {
- this.setState({
- newshixunlist: response.data
- });
- this.initMD(response.data.sample[0][1]);
- }
-
- }
- }).catch((error) => {
- console.log(error)
- });
-
- let departmentsUrl = `/shixuns/departments.json`;
- axios.get(departmentsUrl).then((response) => {
- if (response.status === 200) {
- this.setState({
- departmentslist: response.data.shools_name
- });
- }
- }).catch((error) => {
- console.log(error)
- });
- }
-
- setlanguagewrite = (e)=>{
- this.setState({
- languagewrite: e.target.value
- })
- }
-
- setsystemenvironment = (e) => {
- this.setState({
- systemenvironment: e.target.value
- })
- }
- settestcoderunmode = (e) => {
- this.setState({
- testcoderunmode: e.target.value
- })
-
- }
- shixunname = (e) => {
- this.setState({
- name: e.target.value,
- shixun_nametype: false
- });
- }
-
- bigClass = (value) => {
- this.setState({
- main_type: value
- })
- }
-
- littleClass = (value) => {
- this.setState({
- small_type: value
- })
- }
-
- Selectthestudent = (value) => {
- this.setState({
- trainee: value
- })
- }
-
- SelectTheCommand = (e) => {
- this.setState({
- webssh: e.target.value,
- });
-
- if (e.target.value === 2) {
- this.setState({
- SelectTheCommandtype: true,
- multi_webssh: false
- });
- } else {
- this.setState({
- SelectTheCommandtype: false,
- multi_webssh: false
- });
- }
- }
-
- Selectpublic = (e) => {
- this.setState({
- scopetype: false,
- use_scope: e.target.value,
- });
- if (e.target.value === 1) {
- this.setState({
- scopetype: true
- });
- }
-
- }
-
- Teacherscopy = (e) => {
- let sum = ""
- if (e.target.checked === false) {
- sum = 0
- } else if (e.target.checked === true) {
- sum = 1
- }
- this.setState({
- can_copy: sum,
- });
- }
-
- TeachersUbuntu = (e) => {
- let sum = ""
- if (e.target.checked === false) {
- sum = 0
- } else if (e.target.checked === true) {
- sum = 1
- }
- this.setState({
- vnc: sum,
- });
- }
-
- adduse_scopeinput = () => {
- let {scope_partment} = this.state;
- let array = scope_partment;
- let newarray = ""
- array.push(newarray)
- this.setState({
- scope_partment: array,
- });
- }
-
- shixunScopeInput = (e, id) => {
- let {scope_partment} = this.state;
- let datalist = scope_partment;
- if (datalist === undefined) {
- datalist = []
- }
- datalist.push(e)
- // else{
- // datalist[id]=e
- // }
-
- this.setState({
- scope_partment: datalist,
- onSearchvalue: ""
- });
- }
-
- deleteScopeInput = (key) => {
- let {scope_partment} = this.state;
- let datalist = scope_partment;
- datalist.splice(key, 1);
- this.setState({
- scope_partment: datalist
- });
- }
-
- //提交数据
- submit_new_shixun = () => {
- const mdVal = this.taskpass_editormd.getValue();
- let {can_copy, main_type, name, scope_partment, small_type, trainee, use_scope, vnc, webssh, multi_webssh, TimePickervalue} = this.state;
- let Url = `/shixuns.json`
- if (name === "") {
- this.setState({
- shixun_nametype: true
- })
- this.props.showSnackbar("实训名称为空");
- $('html').animate({
- scrollTop: 10
- }, 1000);
- return
- }
- if (main_type === "") {
- this.setState({
- main_types: true
- })
- $('html').animate({
- scrollTop: 700
- }, 1000);
- this.props.showSnackbar("请选择技术平台大类别");
-
- return
- }
-
- if (use_scope === 1) {
- if (scope_partment === undefined || scope_partment.length === 0) {
- this.setState({
- scope_partmenttype: true
- })
- $('html').animate({
- scrollTop: 900
- }, 1000);
- this.props.showSnackbar("公开程度,指定单位为空");
- return
- }
- }
- if (trainee === "") {
- this.setState({
- trainee_types: true
- })
- // $('html').animate({
- // scrollTop: 700
- // }, 1000);
- this.props.showSnackbar("请选择发布信息");
- return
- }
- let newmulti_webssh = multi_webssh;
- if (newmulti_webssh === true) {
- newmulti_webssh = 1
- } else {
- newmulti_webssh = ""
- }
- axios.post(Url, {
- name: name,
- can_copy: can_copy,
- description: mdVal,
- main_type: main_type,
- scope_partment: scope_partment,
- small_type: small_type,
- trainee: trainee,
- use_scope: use_scope,
- vnc: vnc,
- webssh: webssh,
- multi_webssh: newmulti_webssh,
- task_pass: 1,
- opening_time: TimePickervalue
- }
- ).then((response) => {
- if (response.status === 200) {
- window.location.href = "/shixuns/" + response.data.shixun_identifier + "/challenges";
- // window.open("/shixuns/"+response.data.shixun_identifier+"/challenges");
- }
- }).catch((error) => {
- console.log(error)
- })
- }
-
-
- shixunsfetch = (value, callback) => {
- if (timeout) {
- clearTimeout(timeout);
- timeout = null;
- }
- currentValue = value;
-
- function fake() {
- let departmentsUrl = `/shixuns/departments.json?q=` + currentValue;
- axios.get(departmentsUrl).then((response) => {
- callback(response.data.shools_name);
- }).catch((error) => {
- console.log(error)
- });
- }
-
- timeout = setTimeout(fake, 300);
- }
-
- shixunHandleSearch = (value) => {
- this.shixunsfetch(value, departmentslist => this.setState({departmentslist}));
- this.setState({
- onSearchvalue: ""
- })
- }
-
- post_apply = () => {
- this.setState({
- postapplyvisible: true
- })
- }
- sendsure_apply = () => {
- let {languagewrite,systemenvironment,testcoderunmode} = this.state;
- // console.log("点击确定")
- // console.log("languagewrite"+languagewrite);
- // console.log("systemenvironment"+systemenvironment);
- // console.log("testcoderunmode"+testcoderunmode);
-
- // let attachment_ids = undefined
- // if (this.state.fileList) {
- // attachment_ids = this.state.fileList.map(item => {
- // return item.response ? item.response.id : item.id
- // })
- // }
- if(languagewrite === undefined || languagewrite === "" ){
- this.props.showNotification(`请填写该镜像是基于什么语言`);
-
- return
- }
- if(systemenvironment === undefined || systemenvironment === ""){
- this.props.showNotification(`请填写该镜像是基于什么语言系统环境`);
-
- return;
-
- }
- if(testcoderunmode === undefined || testcoderunmode === "") {
- this.props.showNotification(`请填写该镜像中测试代码运行方式`);
-
- return;
-
- }
- var attachment_ids=undefined;
- if (this.state.fileList) {
- attachment_ids = this.state.fileList.map(item => {
- return item.response ? item.response.id : item.id
- })
- }
- if( attachment_ids === undefined || attachment_ids.length===0){
- this.props.showNotification(`请上传附件`);
-
- return;
- }
- // console.log("attachment_ids"+attachment_ids);
-
- // alert(languagewrite +" "+systemenvironment +" "+testcoderunmode + " "+attachment_ids);
-
- var data={
- language:languagewrite,
- runtime:systemenvironment,
- run_method:testcoderunmode,
- attachment_id:attachment_ids[0],
- }
- var url =`/shixuns/apply_shixun_mirror.json`;
- axios.post(url,data
- ).then((response) => {
-
- try {
- if (response.data) {
- // const { id } = response.data;
- // if (id) {
- if(this.state.file !== undefined){
- this.deleteAttachment(this.state.file);
- this.setState({
- file:undefined,
- languagewrite:"",
- systemenvironment:"",
- testcoderunmode:"",
- })
- }else {
- this.setState({
- file:undefined,
- languagewrite:"",
- systemenvironment:"",
- testcoderunmode:"",
- })
- }
- this.props.showNotification('提交成功!');
- // this.props.history.push(`/courses/${cid}/graduation_topics`);
- // }
- }
- }catch (e) {
-
- }
-
- })
-
- }
- sendhideModaly = () => {
- this.setState({
- postapplyvisible: false,
- })
- if(this.state.file !== undefined){
- this.deleteAttachment(this.state.file);
- this.setState({
- file:undefined,
- languagewrite:"",
- systemenvironment:"",
- testcoderunmode:"",
- })
- }else {
- this.setState({
- file:undefined,
- languagewrite:"",
- systemenvironment:"",
- testcoderunmode:"",
- })
- }
- }
- sendsure_applyvalues = (e) => {
- this.setState({
- sendsure_applyvalue: e.target.value
- })
- }
- yeshidemodel = () => {
- this.setState({
- postapplytitle: false
- })
- }
-
- SelectTheCommandonChange = (e) => {
- this.setState({
- multi_webssh: e.target.checked
- })
- }
-
-
- bigopen = () => {
- this.setState({
- opers: true
- })
- }
-
- bigopens = () => {
- this.setState({
- opers: false,
- operss: false,
- opensmail: false
- })
-
- }
-
- bigopensmal = () => {
- this.setState({
- opensmail: true
- })
- }
-
- sbigopen = () => {
- this.setState({
- operss: true
- })
- }
-
- // sbigopens=()=>{
- // this.setState({
- // operss:false
- // })
- // }
-
- onChangeTimePicker = (value, dateString) => {
- this.setState({
- TimePickervalue: dateString
- })
- }
- // 附件相关 START
- handleChange = (info) => {
- console.log("handleChange1");
- 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);
- });
- }
-
-
- handleSubmit=()=>{
- // console.log(this.state.languagewrite)
- // console.log(this.state.systemenvironment)
- // console.log(this.state.testcoderunmode)
- var attachment_ids;
- if (this.state.fileList) {
- attachment_ids = this.state.fileList.map(item => {
- return item.response ? item.response.id : item.id
- })
- }
- // console.log(attachment_ids);
- // var data={
- // language:"",
- // runtime:"",
- // run_method:"",
- // attachment_id:"",
- // }
- // axios.post(url,data
- // ).then((response) => {
- // if (response.data) {
- // // const { id } = response.data;
- // // if (id) {
- // this.props.showNotification('提交成功!');
- // // this.props.history.push(`/courses/${cid}/graduation_topics`);
- // // }
- // }
- // })
-
-
-
- }
- render() {
- const { getFieldDecorator } = this.props.form;
- const thiss=this;
- let {testcoderunmode ,systemenvironment,languagewrite, fileList,TimePickervalue, scope_partmenttype, opensmail, newshixunlist, name, scope_partment, departmentslist, postapplyvisible, sendsure_applyvalue, postapplytitle, shixun_nametype, main_types, trainee_types, SelectTheCommandtype, opers, operss, onSearchvalue} = this.state;
- let options
- if (departmentslist != undefined) {
- options = this.state.departmentslist.map((d, k) => {
- return (
-
- )
- })
- }
- 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 < 50;
- if (!isLt150M) {
- this.props.showNotification(`文件大小必须小于50MB`);
-
- }
- if(thiss.state.file !== undefined){
- thiss.deleteAttachment(thiss.state.file);
- thiss.setState({
- file:file
- })
- }else {
- thiss.setState({
- file:file
- })
- }
-
- console.log("handleChange2");
- return isLt150M;
- },
- }
- // 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 isLt50M = file.size / 1024 / 1024 < 50;
- // if (!isLt50M) {
- // message.error('文件大小必须小于150MB!');
- // }
- // return isLt50M;
- // },
- // };
- return (
-
-
-
-
-
-
-
-
-
-
-
-
技术平台
-
-
*
-
-
-
- 列表中没有?
- 申请新建
-
-
-
- {/**/}
-
-
-
-
-
新建申请已提交,请等待管理员的审核
-
我们将在1-2个工作日内与您联系
-
-
-
-
-
-
-
-
-
-
请在配置页面完成后续的评测脚本设置操作
-
- 必填项
-
-
-
-
-
-
-
命令行
-
-
- 无命令行窗口 (选中则不给学员的实践任务提供命令窗口)
- 命令行练习窗口 (选中则给学员提供用于练习操作的命令行窗口)
- 命令行评测窗口 (选中则给学员提供用于关卡评测的命令行窗口)
-
- 多个命令行窗口(选中则允许学员同时开启多个命令行窗口)
-
-
-
-
-
-
-
-
公开程度
-
-
- 对所有公开 (选中则所有已被试用授权的用户可以学习)
- 对指定单位公开 (选中则下方指定单位的已被试用授权的用户可以学习)
-
-
-
-
-
-
-
-
- {
- scope_partment === undefined ? "" : scope_partment.map((item, key) => {
- return (
-
{item}
- this.deleteScopeInput(key)}>×
-
- )
- })
- }
-
- {/*{*/}
- {/*scope_partment===undefined?"":scope_partment.map((item,key)=>{*/}
- {/*return(*/}
- {/*
*/}
- {/*this.deleteScopeInput(key)} style={{ color: 'rgba(0,0,0,.25)' }} />}*/}
- {/*value={item}*/}
- {/*/>*/}
- {/*
*/}
-
- {/*)*/}
- {/*})*/}
- {/*}*/}
-
-
-
-
- 请选择需要公开的单位
-
-
-
-
-
-
-
-
-
发布信息
-
-
-
*面向学员:
-
-
-
-
实训难易度定位,不限定用户群体
-
- 必填项
-
-
-
-
- 复制:
-
-
-
-
- 开启时间:
-
-
-
-
-
-
- {/*
*/}
- {/*
VNC图形化
*/}
- {/*
*/}
- {/**/}
- {/**/}
- {/**/}
- {/*
*/}
-
-
-
-
-
-
-
-
-
- );
- }
-}
-const NewshixunsNew = Form.create({ name: 'newshixunsnew' })(Newshixuns);
-export default SnackbarHOC()(TPMIndexHOC(NewshixunsNew));
-
-
-
-
-
-
+import React, {Component} from 'react';
+
+import {TPMIndexHOC} from '../TPMIndexHOC';
+
+import {SnackbarHOC} from 'educoder';
+
+import {Input, Select, Radio, Checkbox, Modal, Icon, DatePicker,Upload,Button,message,Form} from 'antd';
+
+// import "antd/dist/antd.css";
+
+import locale from 'antd/lib/date-picker/locale/zh_CN';
+
+import axios from 'axios';
+
+import './css/Newshixuns.css';
+
+import {getUrl} from 'educoder'
+
+let path = getUrl("/editormd/lib/")
+
+const $ = window.$;
+
+let timeout;
+
+let currentValue;
+
+const Option = Select.Option;
+
+const RadioGroup = Radio.Group;
+const confirm = Modal.confirm;
+// 恢复数据
+function md_rec_data(k, mdu, id, editor) {
+ if (window.sessionStorage.getItem(k + mdu) !== null) {
+ editor.setValue(window.sessionStorage.getItem(k + mdu));
+ md_clear_data(k, mdu, id);
+ }
+}
+
+// 保存数据
+function md_add_data(k, mdu, d) {
+ window.sessionStorage.setItem(k + mdu, d);
+}
+
+// 清空保存的数据
+function md_clear_data(k, mdu, id) {
+ window.sessionStorage.removeItem(k + mdu);
+ var id1 = "#e_tip_" + id;
+ var id2 = "#e_tips_" + id;
+ if (k == 'content') {
+ $(id2).html("");
+ } else {
+ $(id1).html("");
+ }
+}
+
+function md_elocalStorage(editor, mdu, id) {
+ if (window.sessionStorage) {
+ var oc = window.sessionStorage.getItem('content' + mdu);
+ if (oc !== null) {
+ $("#e_tips_" + id).data('editor', editor);
+ var h = '您上次有已保存的数据,是否恢复 ? / 不恢复';
+ $("#e_tips_" + id).html(h);
+ }
+ setInterval(function () {
+ var d = new Date();
+ var h = d.getHours();
+ var m = d.getMinutes();
+ var s = d.getSeconds();
+ h = h < 10 ? '0' + h : h;
+ m = m < 10 ? '0' + m : m;
+ s = s < 10 ? '0' + s : s;
+ if (editor.getValue().trim() != "") {
+ md_add_data("content", mdu, editor.getValue());
+ var id1 = "#e_tip_" + id;
+ var id2 = "#e_tips_" + id;
+
+ $(id1).html(" 数据已于 " + h + ':' + m + ':' + s + " 保存 ");
+ $(id2).html("");
+ }
+ }, 10000);
+
+ } else {
+ $("#e_tip_" + id).after('您的浏览器不支持localStorage.无法开启自动保存草稿服务,请升级浏览器!');
+ }
+}
+
+
+function create_editorMD(id, width, high, placeholder, imageUrl, callback) {
+ var editorName = window.editormd(id, {
+ width: width,
+ height: high,
+ path: path, // "/editormd/lib/"
+
+ syncScrolling: "single",
+ tex: true,
+ tocm: true,
+ emoji: true,
+ taskList: true,
+ codeFold: true,
+ searchReplace: true,
+ htmlDecode: "style,script,iframe",
+ sequenceDiagram: true,
+ autoFocus: false,
+ toolbarIcons: function () {
+ // Or return editormd.toolbarModes[name]; // full, simple, mini
+ // Using "||" set icons align right.
+ return ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear"]
+ },
+ toolbarCustomIcons: {
+ testIcon: "",
+ testIcon1: ""
+ },
+ //这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
+ saveHTMLToTextarea: true,
+ // 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
+ dialogMaskOpacity: 0.6,
+ placeholder: placeholder,
+ imageUpload: true,
+ imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
+ imageUploadURL: imageUrl,//url
+ onload: function () {
+ // this.previewing();
+ $("#" + id + " [type=\"latex\"]").bind("click", function () {
+ editorName.cm.replaceSelection("```latex");
+ editorName.cm.replaceSelection("\n");
+ editorName.cm.replaceSelection("\n");
+ editorName.cm.replaceSelection("```");
+ var __Cursor = editorName.cm.getDoc().getCursor();
+ editorName.cm.setCursor(__Cursor.line - 1, 0);
+ });
+
+ $("#" + id + " [type=\"inline\"]").bind("click", function () {
+ editorName.cm.replaceSelection("$$$$");
+ var __Cursor = editorName.cm.getDoc().getCursor();
+ editorName.cm.setCursor(__Cursor.line, __Cursor.ch - 2);
+ editorName.cm.focus();
+ });
+ $("[type=\"inline\"]").attr("title", "行内公式");
+ $("[type=\"latex\"]").attr("title", "多行公式");
+
+ md_elocalStorage(editorName, `memoNew_${id}`, "memoNew");
+
+ callback && callback()
+ }
+ });
+ return editorName;
+}
+
+
+class Newshixuns extends Component {
+ constructor(props) {
+ super(props)
+ this.state = {
+ fileList: [],
+ newshixunlist: undefined,
+ departmentslist: undefined,
+ name: "",
+ main_type: "",
+ small_type: "",
+ trainee: "",
+ webssh: 0,
+ use_scope: 0,
+ can_copy: "",
+ scope_partment: undefined,
+ vnc: "",
+ scopetype: false,
+ postapplyvisible: false,
+ sendsure_applyvalue: undefined,
+ postapplytitle: false,
+ shixun_nametype: false,
+ main_types: false,
+ trainee_types: false,
+ SelectTheCommandtype: false,
+ opers: false,
+ operss: false,
+ TimePickervalue: "",
+ opensmail: false,
+ onSearchvalue: "",
+ scope_partmenttype: false,
+ languagewrite: undefined,
+ systemenvironment:undefined,
+ testcoderunmode:undefined,
+ file:undefined,
+ }
+ }
+
+ initMD(initValue) {
+ this.contentChanged = false;
+ const placeholder = "";
+ // amp;
+ // 编辑时要传memoId
+ const imageUrl = `/api/attachments.json`;
+ // 创建editorMd
+
+ const taskpass_editormd = create_editorMD("memoMD", '100%', 400, placeholder, imageUrl, () => {
+ setTimeout(() => {
+ taskpass_editormd.resize()
+ taskpass_editormd.cm && taskpass_editormd.cm.refresh()
+ }, 500)
+
+ if (initValue) {
+ taskpass_editormd.setValue(initValue)
+ }
+ taskpass_editormd.cm.on("change", (_cm, changeObj) => {
+ // console.log('....contentChanged')
+ this.contentChanged = true;
+ })
+ });
+ this.taskpass_editormd = taskpass_editormd;
+ window.taskpass_editormd = taskpass_editormd;
+
+ }
+
+ componentDidMount() {
+ let newshixunUrl = `/shixuns/new.json`;
+ axios.get(newshixunUrl).then((response) => {
+ if (response.status === 200) {
+ if (response.data.status === 403 || response.data.status === 401 || response.data.status === 500) {
+
+ } else {
+ this.setState({
+ newshixunlist: response.data
+ });
+ this.initMD(response.data.sample[0][1]);
+ }
+
+ }
+ }).catch((error) => {
+ console.log(error)
+ });
+
+ let departmentsUrl = `/shixuns/departments.json`;
+ axios.get(departmentsUrl).then((response) => {
+ if (response.status === 200) {
+ this.setState({
+ departmentslist: response.data.shools_name
+ });
+ }
+ }).catch((error) => {
+ console.log(error)
+ });
+ }
+
+ setlanguagewrite = (e)=>{
+ this.setState({
+ languagewrite: e.target.value
+ })
+ }
+
+ setsystemenvironment = (e) => {
+ this.setState({
+ systemenvironment: e.target.value
+ })
+ }
+ settestcoderunmode = (e) => {
+ this.setState({
+ testcoderunmode: e.target.value
+ })
+
+ }
+ shixunname = (e) => {
+ this.setState({
+ name: e.target.value,
+ shixun_nametype: false
+ });
+ }
+
+ bigClass = (value) => {
+ this.setState({
+ main_type: value
+ })
+ }
+
+ littleClass = (value) => {
+ this.setState({
+ small_type: value
+ })
+ }
+
+ Selectthestudent = (value) => {
+ this.setState({
+ trainee: value
+ })
+ }
+
+ SelectTheCommand = (e) => {
+ this.setState({
+ webssh: e.target.value,
+ });
+
+ if (e.target.value === 2) {
+ this.setState({
+ SelectTheCommandtype: true,
+ multi_webssh: false
+ });
+ } else {
+ this.setState({
+ SelectTheCommandtype: false,
+ multi_webssh: false
+ });
+ }
+ }
+
+ Selectpublic = (e) => {
+ this.setState({
+ scopetype: false,
+ use_scope: e.target.value,
+ });
+ if (e.target.value === 1) {
+ this.setState({
+ scopetype: true
+ });
+ }
+
+ }
+
+ Teacherscopy = (e) => {
+ let sum = ""
+ if (e.target.checked === false) {
+ sum = 0
+ } else if (e.target.checked === true) {
+ sum = 1
+ }
+ this.setState({
+ can_copy: sum,
+ });
+ }
+
+ TeachersUbuntu = (e) => {
+ let sum = ""
+ if (e.target.checked === false) {
+ sum = 0
+ } else if (e.target.checked === true) {
+ sum = 1
+ }
+ this.setState({
+ vnc: sum,
+ });
+ }
+
+ adduse_scopeinput = () => {
+ let {scope_partment} = this.state;
+ let array = scope_partment;
+ let newarray = ""
+ array.push(newarray)
+ this.setState({
+ scope_partment: array,
+ });
+ }
+
+ shixunScopeInput = (e, id) => {
+ let {scope_partment} = this.state;
+ let datalist = scope_partment;
+ if (datalist === undefined) {
+ datalist = []
+ }
+ datalist.push(e)
+ // else{
+ // datalist[id]=e
+ // }
+
+ this.setState({
+ scope_partment: datalist,
+ onSearchvalue: ""
+ });
+ }
+
+ deleteScopeInput = (key) => {
+ let {scope_partment} = this.state;
+ let datalist = scope_partment;
+ datalist.splice(key, 1);
+ this.setState({
+ scope_partment: datalist
+ });
+ }
+
+ //提交数据
+ submit_new_shixun = () => {
+ const mdVal = this.taskpass_editormd.getValue();
+ let {can_copy, main_type, name, scope_partment, small_type, trainee, use_scope, vnc, webssh, multi_webssh, TimePickervalue} = this.state;
+ let Url = `/shixuns.json`
+ if (name === "") {
+ this.setState({
+ shixun_nametype: true
+ })
+ this.props.showSnackbar("实训名称为空");
+ $('html').animate({
+ scrollTop: 10
+ }, 1000);
+ return
+ }
+ if (main_type === "") {
+ this.setState({
+ main_types: true
+ })
+ $('html').animate({
+ scrollTop: 700
+ }, 1000);
+ this.props.showSnackbar("请选择技术平台大类别");
+
+ return
+ }
+
+ if (use_scope === 1) {
+ if (scope_partment === undefined || scope_partment.length === 0) {
+ this.setState({
+ scope_partmenttype: true
+ })
+ $('html').animate({
+ scrollTop: 900
+ }, 1000);
+ this.props.showSnackbar("公开程度,指定单位为空");
+ return
+ }
+ }
+ if (trainee === "") {
+ this.setState({
+ trainee_types: true
+ })
+ // $('html').animate({
+ // scrollTop: 700
+ // }, 1000);
+ this.props.showSnackbar("请选择发布信息");
+ return
+ }
+ let newmulti_webssh = multi_webssh;
+ if (newmulti_webssh === true) {
+ newmulti_webssh = 1
+ } else {
+ newmulti_webssh = ""
+ }
+ axios.post(Url, {
+ name: name,
+ can_copy: can_copy,
+ description: mdVal,
+ main_type: main_type,
+ scope_partment: scope_partment,
+ small_type: small_type,
+ trainee: trainee,
+ use_scope: use_scope,
+ vnc: vnc,
+ webssh: webssh,
+ multi_webssh: newmulti_webssh,
+ task_pass: 1,
+ opening_time: TimePickervalue
+ }
+ ).then((response) => {
+ if (response.status === 200) {
+ window.location.href = "/shixuns/" + response.data.shixun_identifier + "/challenges";
+ // window.open("/shixuns/"+response.data.shixun_identifier+"/challenges");
+ }
+ }).catch((error) => {
+ console.log(error)
+ })
+ }
+
+
+ shixunsfetch = (value, callback) => {
+ if (timeout) {
+ clearTimeout(timeout);
+ timeout = null;
+ }
+ currentValue = value;
+
+ function fake() {
+ let departmentsUrl = `/shixuns/departments.json?q=` + currentValue;
+ axios.get(departmentsUrl).then((response) => {
+ callback(response.data.shools_name);
+ }).catch((error) => {
+ console.log(error)
+ });
+ }
+
+ timeout = setTimeout(fake, 300);
+ }
+
+ shixunHandleSearch = (value) => {
+ this.shixunsfetch(value, departmentslist => this.setState({departmentslist}));
+ this.setState({
+ onSearchvalue: ""
+ })
+ }
+
+ post_apply = () => {
+ this.setState({
+ postapplyvisible: true
+ })
+ }
+ sendsure_apply = () => {
+ let {languagewrite,systemenvironment,testcoderunmode} = this.state;
+ // console.log("点击确定")
+ // console.log("languagewrite"+languagewrite);
+ // console.log("systemenvironment"+systemenvironment);
+ // console.log("testcoderunmode"+testcoderunmode);
+
+ // let attachment_ids = undefined
+ // if (this.state.fileList) {
+ // attachment_ids = this.state.fileList.map(item => {
+ // return item.response ? item.response.id : item.id
+ // })
+ // }
+ if(languagewrite === undefined || languagewrite === "" ){
+ this.props.showNotification(`请填写该镜像是基于什么语言`);
+
+ return
+ }
+ if(systemenvironment === undefined || systemenvironment === ""){
+ this.props.showNotification(`请填写该镜像是基于什么语言系统环境`);
+
+ return;
+
+ }
+ if(testcoderunmode === undefined || testcoderunmode === "") {
+ this.props.showNotification(`请填写该镜像中测试代码运行方式`);
+
+ return;
+
+ }
+ var attachment_ids=undefined;
+ if (this.state.fileList) {
+ attachment_ids = this.state.fileList.map(item => {
+ return item.response ? item.response.id : item.id
+ })
+ }
+ if( attachment_ids === undefined || attachment_ids.length===0){
+ this.props.showNotification(`请上传附件`);
+
+ return;
+ }
+ // console.log("attachment_ids"+attachment_ids);
+
+ // alert(languagewrite +" "+systemenvironment +" "+testcoderunmode + " "+attachment_ids);
+
+ var data={
+ language:languagewrite,
+ runtime:systemenvironment,
+ run_method:testcoderunmode,
+ attachment_id:attachment_ids[0],
+ }
+ var url =`/shixuns/apply_shixun_mirror.json`;
+ axios.post(url,data
+ ).then((response) => {
+
+ try {
+ if (response.data) {
+ // const { id } = response.data;
+ // if (id) {
+ if(this.state.file !== undefined){
+ console.log("549");
+ this.deleteAttachment(this.state.file);
+ this.setState({
+ file:undefined,
+ languagewrite:"",
+ systemenvironment:"",
+ testcoderunmode:"",
+ })
+ }else {
+ this.setState({
+ file:undefined,
+ languagewrite:"",
+ systemenvironment:"",
+ testcoderunmode:"",
+ })
+ }
+ this.props.showNotification('提交成功!');
+ // this.props.history.push(`/courses/${cid}/graduation_topics`);
+ // }
+ }
+ }catch (e) {
+
+ }
+
+ })
+
+ }
+ sendhideModaly = () => {
+ this.setState({
+ postapplyvisible: false,
+ })
+ if(this.state.file !== undefined){
+ console.log("580");
+ this.deleteAttachment(this.state.file);
+ this.setState({
+ file:undefined,
+ languagewrite:"",
+ systemenvironment:"",
+ testcoderunmode:"",
+ })
+ }else {
+ this.setState({
+ file:undefined,
+ languagewrite:"",
+ systemenvironment:"",
+ testcoderunmode:"",
+ })
+ }
+ }
+ sendsure_applyvalues = (e) => {
+ this.setState({
+ sendsure_applyvalue: e.target.value
+ })
+ }
+ yeshidemodel = () => {
+ this.setState({
+ postapplytitle: false
+ })
+ }
+
+ SelectTheCommandonChange = (e) => {
+ this.setState({
+ multi_webssh: e.target.checked
+ })
+ }
+
+
+ bigopen = () => {
+ this.setState({
+ opers: true
+ })
+ }
+
+ bigopens = () => {
+ this.setState({
+ opers: false,
+ operss: false,
+ opensmail: false
+ })
+
+ }
+
+ bigopensmal = () => {
+ this.setState({
+ opensmail: true
+ })
+ }
+
+ sbigopen = () => {
+ this.setState({
+ operss: true
+ })
+ }
+
+ // sbigopens=()=>{
+ // this.setState({
+ // operss:false
+ // })
+ // }
+
+ onChangeTimePicker = (value, dateString) => {
+ this.setState({
+ TimePickervalue: dateString
+ })
+ }
+ // 附件相关 START
+ handleChange = (info) => {
+ console.log("handleChange1");
+ let fileList = info.fileList;
+ this.setState({ fileList });
+ }
+ onAttachmentRemove = (file) => {
+ confirm({
+ title: '确定要删除这个附件吗?',
+ okText: '确定',
+ cancelText: '取消',
+ // content: 'Some descriptions',
+ onOk: () => {
+ console.log("665")
+ 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);
+ });
+ }
+
+
+ handleSubmit=()=>{
+ // console.log(this.state.languagewrite)
+ // console.log(this.state.systemenvironment)
+ // console.log(this.state.testcoderunmode)
+ var attachment_ids;
+ if (this.state.fileList) {
+ attachment_ids = this.state.fileList.map(item => {
+ return item.response ? item.response.id : item.id
+ })
+ }
+ // console.log(attachment_ids);
+ // var data={
+ // language:"",
+ // runtime:"",
+ // run_method:"",
+ // attachment_id:"",
+ // }
+ // axios.post(url,data
+ // ).then((response) => {
+ // if (response.data) {
+ // // const { id } = response.data;
+ // // if (id) {
+ // this.props.showNotification('提交成功!');
+ // // this.props.history.push(`/courses/${cid}/graduation_topics`);
+ // // }
+ // }
+ // })
+
+
+
+ }
+ render() {
+ const { getFieldDecorator } = this.props.form;
+ const thiss=this;
+ let {testcoderunmode ,systemenvironment,languagewrite, fileList,TimePickervalue, scope_partmenttype, opensmail, newshixunlist, name, scope_partment, departmentslist, postapplyvisible, sendsure_applyvalue, postapplytitle, shixun_nametype, main_types, trainee_types, SelectTheCommandtype, opers, operss, onSearchvalue} = this.state;
+ let options
+ if (departmentslist != undefined) {
+ options = this.state.departmentslist.map((d, k) => {
+ return (
+
+ )
+ })
+ }
+ 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 < 50;
+ if (!isLt150M) {
+ this.props.showNotification(`文件大小必须小于50MB`);
+
+ }
+ if(thiss.state.file !== undefined){
+ console.log("763")
+ thiss.deleteAttachment(thiss.state.file);
+ thiss.setState({
+ file:file
+ })
+ }else {
+ thiss.setState({
+ file:file
+ })
+ }
+
+ console.log("handleChange2");
+ return isLt150M;
+ },
+ }
+ // 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 isLt50M = file.size / 1024 / 1024 < 50;
+ // if (!isLt50M) {
+ // message.error('文件大小必须小于150MB!');
+ // }
+ // return isLt50M;
+ // },
+ // };
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
技术平台
+
+
*
+
+
+
+ 列表中没有?
+ 申请新建
+
+
+
+ {/**/}
+
+
+
+
+
新建申请已提交,请等待管理员的审核
+
我们将在1-2个工作日内与您联系
+
+
+
+
+
+
+
+
+
+
请在配置页面完成后续的评测脚本设置操作
+
+ 必填项
+
+
+
+
+
+
+
命令行
+
+
+ 无命令行窗口 (选中则不给学员的实践任务提供命令窗口)
+ 命令行练习窗口 (选中则给学员提供用于练习操作的命令行窗口)
+ 命令行评测窗口 (选中则给学员提供用于关卡评测的命令行窗口)
+
+ 多个命令行窗口(选中则允许学员同时开启多个命令行窗口)
+
+
+
+
+
+
+
+
公开程度
+
+
+ 对所有公开 (选中则所有已被试用授权的用户可以学习)
+ 对指定单位公开 (选中则下方指定单位的已被试用授权的用户可以学习)
+
+
+
+
+
+
+
+
+ {
+ scope_partment === undefined ? "" : scope_partment.map((item, key) => {
+ return (
+
{item}
+ this.deleteScopeInput(key)}>×
+
+ )
+ })
+ }
+
+ {/*{*/}
+ {/*scope_partment===undefined?"":scope_partment.map((item,key)=>{*/}
+ {/*return(*/}
+ {/*
*/}
+ {/*this.deleteScopeInput(key)} style={{ color: 'rgba(0,0,0,.25)' }} />}*/}
+ {/*value={item}*/}
+ {/*/>*/}
+ {/*
*/}
+
+ {/*)*/}
+ {/*})*/}
+ {/*}*/}
+
+
+
+
+ 请选择需要公开的单位
+
+
+
+
+
+
+
+
+
发布信息
+
+
+
*面向学员:
+
+
+
+
实训难易度定位,不限定用户群体
+
+ 必填项
+
+
+
+
+ 复制:
+
+
+
+
+ 开启时间:
+
+
+
+
+
+
+ {/*
*/}
+ {/*
VNC图形化
*/}
+ {/*
*/}
+ {/**/}
+ {/**/}
+ {/**/}
+ {/*
*/}
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+const NewshixunsNew = Form.create({ name: 'newshixunsnew' })(Newshixuns);
+export default SnackbarHOC()(TPMIndexHOC(NewshixunsNew));
+
+
+
+
+
+