import React, {Component} from "react"; import {Link, NavLink} from 'react-router-dom'; import {WordsBtn, ActionBtn, SnackbarHOC, getImageUrl} from 'educoder'; import axios from 'axios'; import { notification, Spin, Table, Pagination, Radio, Checkbox, Form, Input, Select, Cascader, Col, Row, InputNumber, DatePicker, AutoComplete, Button, Tag } from "antd"; import './../questioncss/questioncom.css'; import Newknledpots from './Newknledpots' const InputGroup = Input.Group; const {Option} = Select; const options = [ { value: '方向', label: '方向', children: [ { value: '课程', label: '课程', }, ], }, { value: 'jiangsu', label: 'Jiangsu', children: [ { value: 'nanjing', label: 'Nanjing', }, ], }, ]; class Itembankstop extends Component { constructor(props) { super(props); this.state = { page: 1, Knowpoints: [], rbtx: undefined, rbkc: undefined, knowledgepoints: [], knowledgepoints2:[], options: [], NewknTypedel:false } } //初始化 componentDidMount() { try { this.props.getcontentMdRef(this); } catch (e) { } this.setState({ options: this.props.disciplmy, }) } componentDidUpdate(prevProps) { // 把知识点放进塞选中 ,如果是编辑 已经选中就不放进去 if (prevProps.disciplmy !== this.props.disciplmy) { this.setState({ options: this.props.disciplmy }) } if(prevProps.disciplinesdata!== this.props.disciplinesdata){ try { if(this.props.item_banksedit.discipline &&this.props.item_banksedit.sub_discipline){ const didata = this.props.disciplinesdata; const knowledgepointsdata = []; for (var i = 0; i < didata.length; i++) { //方向 if (this.props.item_banksedit.discipline.id === didata[i].id) { const fxdidata = didata[i].sub_disciplines; for (var j = 0; j < fxdidata.length; j++) { //课程 if (this.props.item_banksedit.sub_discipline.id === fxdidata[j].id) { const zsddata = fxdidata[j].tag_disciplines; for (var k = 0; k < zsddata.length; k++) { //知识点 knowledgepointsdata.push(zsddata[k]); } } } } } const _result =[]; knowledgepointsdata.filter(item => { if (this.props.item_banksedit.tag_disciplines.findIndex(t => t.id === item.id) === -1) { _result.push(item); } }); this.setState({ knowledgepoints:knowledgepointsdata, knowledgepoints2: _result, }) } }catch (e) { } } //编辑的时候 if (prevProps.item_banksedit !== this.props.item_banksedit) { if (this.props.item_banksedit.item_type) { this.handleFormtixing(this.props.item_banksedit.item_type); } if (this.props.item_banksedit.difficulty) { this.handleFormLayoutChange(this.props.item_banksedit.difficulty); } if (this.props.item_banksedit.tag_disciplines) { this.handletag_disciplinesChange(this.props.item_banksedit.tag_disciplines); } try { this.handdisciplinesChange(this.props.item_banksedit.discipline,this.props.item_banksedit.sub_discipline); }catch (e) { } this.getdatasmys(); } } getdatasmys=()=>{ if(this.props.disciplinesdata){ try { if(this.props.item_banksedit.discipline &&this.props.item_banksedit.sub_discipline){ var didata = this.props.disciplinesdata; var knowledgepointsdata = []; for (var i = 0; i < didata.length; i++) { //方向 if (this.props.item_banksedit.discipline.id === didata[i].id) { const fxdidata = didata[i].sub_disciplines; for (var j = 0; j < fxdidata.length; j++) { //课程 if (this.props.item_banksedit.sub_discipline.id === fxdidata[j].id) { const zsddata = fxdidata[j].tag_disciplines; for (var k = 0; k < zsddata.length; k++) { //知识点 knowledgepointsdata.push(zsddata[k]); } } } } } var _result =[]; knowledgepointsdata.filter(item => { if (this.props.item_banksedit.tag_disciplines.findIndex(t => t.id === item.id) === -1) { _result.push(item); } }); this.setState({ knowledgepoints:knowledgepointsdata, knowledgepoints2: _result, }) }else{ } }catch (e) { } } } handdisciplinesChange =(name,title)=>{ this.setState({ rbkc:[name.id,title.id] }) this.props.form.setFieldsValue({ rbkc: [name.id,title.id], }); } handletag_disciplinesChange = (data) => { //是否选中的知识点 try { var sju=data[data.length-1].name; this.setState({ Knowpoints:data, }) this.props.form.setFieldsValue({ rbzsd: sju, }); }catch (e) { } } onChange = (e) => { } Getdatas = () => { return this.handleSubmits(); } handleSubmits = () => { var data = []; this.props.form.validateFields((err, values) => { data = [] if (!err) { // ////console.log("获取的form 数据"); // ////console.log(values); data.push({ rbnd: parseInt(values.rbnd) }) data.push({ rbtx: values.rbtx }) data.push({ rbzsd: this.state.Knowpoints }) data.push({ rbkc: values.rbkc }) } }); return data; } handleSubmit = (e) => { e.preventDefault(); this.props.form.validateFields((err, values) => { if (!err) { ////console.log("获取的form 数据"); ////console.log(values); } }); } handleFormLayoutChange = (value) => { //难度塞选 ////console.log("难度塞选"); ////console.log(value); this.props.form.setFieldsValue({ rbnd: value + "", }); this.setState({ rbnd: value + "", }) } handleFormkechen = (value) => { //课程 ////console.log("课程"); ////console.log(value); if(this.state.Knowpoints.length>4){ this.props.showNotification(`知识点最多选择5个`); return } var valuename = undefined; this.props.form.setFieldsValue({ rbzsd: value, }); var arr = this.state.knowledgepoints; for (let data of arr) { if (data.id === value) { this.state.Knowpoints.push(data); valuename = data.name; } } const _result =[]; this.state.knowledgepoints.filter(item => { if (this.state.Knowpoints.findIndex(t => t.id === item.id) === -1) { console.log("guonue"); console.log(item); _result.push(item); } }); this.setState({ rbzsd: valuename, Knowpoints: this.state.Knowpoints, knowledgepoints2: _result, }) } handleFormzhishidian = (value) => { console.log("handleFormzhishidian 课程"); console.log(value); //课程 this.props.form.setFieldsValue({ rbkc: value, }); this.setState({ rbkc:value, }) // console.log("handleFormzhishidian"); // console.log(this.props.disciplinesdata); const didata = this.props.disciplinesdata; const knowledgepointsdata = []; for (var i = 0; i < didata.length; i++) { //方向 if (value[0] === didata[i].id) { const fxdidata = didata[i].sub_disciplines; for (var j = 0; j < fxdidata.length; j++) { //课程 if (value[1] === fxdidata[j].id) { const zsddata = fxdidata[j].tag_disciplines; for (var k = 0; k < zsddata.length; k++) { //知识点 knowledgepointsdata.push(zsddata[k]); } } } } } this.setState({ Knowpoints: [], knowledgepoints: knowledgepointsdata, knowledgepoints2:knowledgepointsdata, }) this.props.form.setFieldsValue({ rbzsd: undefined, }); this.setState({ rbzsd: undefined, }) } handleFormtixing = (value) => { //题型 //console.log("题型"); //console.log(value); this.setState({ rbtx: value + "", }) this.props.form.setFieldsValue({ rbtx: value + "", }); this.props.setitem_type(value); } preventDefault = (e) => { e.preventDefault(); ////console.log('Clicked! But prevent default.'); } deletesobject = (item, index) => { var tmp = this.state.Knowpoints; for (var i = 0; i < tmp.length; i++) { if (i ===index) { tmp.splice(i,1); } } this.props.form.setFieldsValue({ rbzsd: this.state.Knowpoints, }); const _result =[]; this.state.knowledgepoints.filter(item => { if (this.state.Knowpoints.findIndex(t => t.id === item.id) === -1) { _result.push(item); } }); this.setState({ Knowpoints: this.state.Knowpoints, knowledgepoints2:_result, }) if (this.state.Knowpoints.length === 0) { this.setState({ rbzsd: undefined, }) } else if (this.state.Knowpoints.length > 0) { try { const myknowda = this.state.Knowpoints; this.setState({ rbzsd: myknowda[this.state.Knowpoints.length - 1].name, }) } catch (e) { } } } NewknTypedeldel=(bool)=>{ if(this.state.rbkc===undefined || this.state.rbkc===null || this.state.rbkc===""){ this.props.showNotification(`请选择课程方向`); return; } this.setState({ NewknTypedel:bool }) } NewknTypedeltyoedel=(value)=>{ if(value===null||value===""){ this.props.showNotification(`请输入知识点`); return } if(value.length===0){ this.props.showNotification(`请输入知识点`); return } var data={ name:value, sub_discipline_id:this.state.rbkc[1] } const url="/tag_disciplines.json"; axios.post(url,data) .then((result) => { if (result.data.status === 0) { // this.props.showNotification(`新增知识点成功!`); var leydata={ id: result.data.tag_discipline_id, name:value, } this.state.knowledgepoints.push(leydata); const _result =[]; this.state.knowledgepoints.filter(item => { if (this.state.Knowpoints.findIndex(t => t.id === item.id) === -1) { _result.push(item); } }); this.setState({ Knowpoints: this.state.Knowpoints, knowledgepoints: this.state.knowledgepoints, knowledgepoints2: _result, }) } }).catch((error) => { //console.log(error); }) this.setState({ NewknTypedel:false }) } render() { let {page, options,NewknTypedel,knowledgepoints,knowledgepoints2,Knowpoints} = this.state; const {getFieldDecorator} = this.props.form; return (
{object.name}