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/TraineetraininginformationModal.js b/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js
index 735e3f396..7d34eb9a1 100644
--- a/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js
+++ b/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js
@@ -52,7 +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){
@@ -62,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: '关卡',