dev_aliyun2
杨树明 5 years ago committed by harry
parent 8764918800
commit 0f4953e8fe

@ -132,6 +132,26 @@ export function initAxiosInterceptors(props) {
export function initAxiosInterceptors(props) {
initOnlineOfflineListener()
// TODO 避免重复的请求 https://github.com/axios/axios#cancellation
// https://github.com/axios/axios/issues/1497
// TODO 读取到package.json中的配置
var proxy = "http://localhost:3000"
// proxy = "http://testbdweb.trustie.net"
// proxy = "http://testbdweb.educoder.net"
// proxy = "https://testeduplus2.educoder.net"
//proxy="http://47.96.87.25:48080"
proxy = "https://pre-newweb.educoder.net"
proxy = "https://test-newweb.educoder.net"
// proxy="https://test-jupyterweb.educoder.net"
//proxy="http://192.168.2.63:3001"
// 在这里使用requestMap控制避免用户通过双击等操作发出重复的请求
// 如果需要支持重复的请求考虑config里面自定义一个allowRepeat参考来控制
const requestMap = {};
window.setfalseInRequestMap = function (keyName) {
requestMap[keyName] = false;
}
let proxy = "https://test-newweb.educoder.net"

@ -80,7 +80,7 @@ class NewMyShixunModel extends Component {
page: this.state.page,
per_page: 10,
oj_status: null,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
@ -106,7 +106,7 @@ class NewMyShixunModel extends Component {
page: 1,
per_page: 10,
oj_status: null,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
}
@ -130,24 +130,25 @@ class NewMyShixunModel extends Component {
page: 1,
per_page: 10,
oj_status: null,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
}
//初始化
componentDidMount() {
const isysladmins = this.props && this.props.current_user && this.props.current_user.admin ? this.props.current_user.admin : false;
const is_teacher = this.props && this.props.current_user && this.props.current_user.is_teacher ? this.props.current_user.is_teacher : false;
const professional_certification = this.props && this.props.current_user && this.props.current_user.professional_certification ? this.props.current_user.professional_certification : false;
let { defaultActiveKey } = this.props;
var defaultActiveKeys = defaultActiveKey;
if (isysladmins === true || (is_teacher === true && professional_certification === true)) {
defaultActiveKeys = "0"
} else {
defaultActiveKeys = "1"
}
this.callback(defaultActiveKeys);
let { defaultActiveKey } = this.state;
var data = {
discipline_id: this.state.discipline_id,
sub_discipline_id: this.state.sub_discipline_id,
tag_discipline_id: this.state.tag_discipline_id,
public: defaultActiveKey,
page: 1,
per_page: 10,
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
let url = `/users/get_navigation_info.json`;
axios.get(url, {}).then((response) => {
// //////console.log("开始请求/get_navigation_info.json");
@ -217,7 +218,7 @@ class NewMyShixunModel extends Component {
page: 1,
per_page: 10,
oj_status: null,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
@ -350,7 +351,7 @@ class NewMyShixunModel extends Component {
page: pageNumber,
per_page: 10,
oj_status: this.state.oj_status,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
@ -469,7 +470,7 @@ class NewMyShixunModel extends Component {
page: 1,
per_page: 10,
oj_status: null,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
@ -496,7 +497,7 @@ class NewMyShixunModel extends Component {
per_page: 10,
keywords: null,
oj_status: null,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
@ -551,7 +552,7 @@ class NewMyShixunModel extends Component {
page: this.state.page,
per_page: 10,
oj_status: this.state.oj_status,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
@ -575,7 +576,7 @@ class NewMyShixunModel extends Component {
keywords: this.state.keywords,
page: this.state.page,
per_page: 10,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
}
@ -601,7 +602,7 @@ class NewMyShixunModel extends Component {
keywords: this.state.keywords,
page: this.state.page,
per_page: 10,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
@ -669,7 +670,7 @@ class NewMyShixunModel extends Component {
keywords: this.state.keywords,
page: this.state.page,
per_page: 10,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdatasy(data);
this.getbasket_listdata();
@ -686,7 +687,15 @@ class NewMyShixunModel extends Component {
let url = "";
if (this.props.exam_id === undefined) {
url = `/item_baskets/${id}.json`;
axios.delete(url)
} else {
url = `/examination_banks/${id}/revoke_item.json`;
}
axios.delete(url, {
data: {
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
}
})
.then((result) => {
if (result.data.status == 0) {
// this.props.showNotification(`撤销成功`);
@ -700,20 +709,11 @@ class NewMyShixunModel extends Component {
keywords: this.state.keywords,
page: this.state.page,
per_page: 10,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdatasy(data);
this.getbasket_listdata();
}
}).catch((error) => {
////console.log(error);
})
} else {
url = `/examination_banks/${this.props.exam_id}/revoke_item.json`;
axios.delete(url, {
data: {
item_id: id === undefined ? "" : parseInt(id),
}
})
.then((result) => {
if (result.data.status == 0) {
@ -772,7 +772,7 @@ class NewMyShixunModel extends Component {
}
const data = {
item_ids: item_idsdata,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
}
this.getitem_baskets(data);
this.setState({
@ -803,7 +803,7 @@ class NewMyShixunModel extends Component {
keywords: this.state.keywords,
page: this.state.page,
per_page: 10,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
this.getbasket_listdata();
@ -841,7 +841,7 @@ class NewMyShixunModel extends Component {
page: this.state.page,
per_page: 10,
oj_status: oj_status,
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
item_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
};
this.getdata(data);
}

@ -9,7 +9,6 @@ import Paperreview_item from "./Paperreview_item"
import Bottomsubmit from "../../modules/modals/Bottomsubmit";
import Comthetestpaperst from "./comthetestpaper/Comthetestpaperst";
import NewMyShixunModel from "../question/NewMyShixunModel";
import IntelligentModel from "../question/component/IntelligentModel"
//人工组卷预览
class Paperreview extends Component {
constructor(props) {
@ -36,8 +35,6 @@ class Paperreview extends Component {
name: null,
duration: null,
newmyshixunmodelbool: false,
artificialtype: "artificial",
Intelligentformation: false,
}
// single_questions:null, 单选题
@ -258,7 +255,6 @@ class Paperreview extends Component {
}
setnewmyshixunmodelbool = (bool) => {
//人工组卷
if (bool === true) {
let scrollToTop = window.setInterval(function () {
let pos = window.pageYOffset;
@ -274,87 +270,15 @@ class Paperreview extends Component {
})
var data = {}
this.getdata(data);
}
//换题型
Replacementtype = (value) => {
var item_types = "";
if (value === "单选题") {
item_types = "SINGLE";
}
else if (value === "多选题") {
item_types = "MULTIPLE";
}
else if (value === "判断题") {
item_types = "JUDGMENT";
}
else if (value === "编程题") {
item_types = "PROGRAM";
}
const url = `/examination_intelligent_settings/${this.props.match.params.id}/exchange_items.json`;
let data = {
item_type: item_types,
}
axios.post(url, data)
.then((result) => {
if (result.data.status == 0) {
//console.log(result);
var data = {}
this.getdata(data);
}
}).catch((error) => {
//console.log(error);
})
}
//换题
Changingtopics = (id) => {
const url = `/examination_intelligent_settings/${this.props.match.params.id}/exchange_one_item.json`;
let data = {
item_id: id,
}
axios.post(url, data)
.then((result) => {
if (result.data.status == 0) {
//console.log(result);
var data = {}
this.getdata(data);
}
}).catch((error) => {
//console.log(error);
})
}
setIntelligentformation = (bool) => {
this.setState({
Intelligentformation: bool
})
}
Confirmationofvolumeformations = () => {
this.setState({
Intelligentformation: false
})
}
render() {
let { page, limit, count, Headertop, visible, placement, modalsType, item_type, artificialtype, Cohetepaperbool, newmyshixunmodelbool, Intelligentformation } = this.state;
let { page, limit, count, Headertop, visible, placement, modalsType, item_type, Cohetepaperbool, newmyshixunmodelbool } = this.state;
const params = this.props && this.props.match && this.props.match.params;
// ////console.log(params);
return (
<div>
<div id={"Itembankstopid"} className="newMain clearfix intermediatecenter "
>
{
Intelligentformation === true ?
<IntelligentModel getdata={(data) => this.getdata(data)} {...this.state} {...this.props} exam_id={this.props.match.params.id} Confirmationofvolumeformations={() => this.Confirmationofvolumeformations()}></IntelligentModel>
: ""
}
{
newmyshixunmodelbool === true ?
<style>{
@ -368,7 +292,7 @@ class Paperreview extends Component {
{
newmyshixunmodelbool === true ?
<div className="fangdatwo">
<NewMyShixunModel {...this.props} {...this.state} exam_id={this.props.match.params.id} setnewmyshixunmodelbool={(e) => this.setnewmyshixunmodelbool(e)}></NewMyShixunModel>
<NewMyShixunModel exam_id={this.props.match.params.id} setnewmyshixunmodelbool={(e) => this.setnewmyshixunmodelbool(e)}></NewMyShixunModel>
</div>
:
""
@ -411,7 +335,7 @@ class Paperreview extends Component {
{
Cohetepaperbool === false ?
<Paperreview_item {...this.state} {...this.props} Changingtopics={(e) => this.Changingtopics(e)} Replacementtype={(e) => this.Replacementtype(e)} getdata={(data) => this.getdata(data)} setnewmyshixunmodelbool={(e) => this.setnewmyshixunmodelbool(e)}>
<Paperreview_item {...this.state} {...this.props} getdata={(data) => this.getdata(data)} setnewmyshixunmodelbool={(e) => this.setnewmyshixunmodelbool(e)}>
</Paperreview_item>
:

@ -430,15 +430,9 @@ class Paperreview_item extends Component {
<p className="ml58 questionstotal lh34">总分{this.props.all_score}</p>
</div>
<div className="w30s xaxisreverseorder">
{
this.props.match.params.type==="artificial"?
<div className="jixuxuanti xiaoshou" onClick={() => this.props.setnewmyshixunmodelbool(true)}>
继续选题
</div>
:
""
}
</div>
</div>
<div className="questiontypeheng w100s mt19 mb19"></div>

@ -901,9 +901,6 @@ class Question extends Component {
/>
{/*头部*/}
<Contentpart {...this.state} {...this.props}
Isitapopup={"false"}
chakanjiexiboolindex={this.state.chakanjiexiboolindex}
chakanjiexibool={(e) => this.chakanjiexibool(e)}
getitem_basketss={(id) => this.getitem_basketss(id)}
selectallquestionsonthispage={() => this.selectallquestionsonthispage()}
getitem_baskets={(e) => this.getitem_baskets(e)}

@ -255,7 +255,7 @@ class Contentpart extends Component {
onSearch={(value) => this.props.setdatafuns(value)} />
:
<Search
style={isysladmins===true||(is_teacher===true&&professional_certification)?{ marginRight:"30px"}:{marginRight:"0px"}}
style={{ marginRight: "30px" }}
className={"xaxisreverseorder searchwidth"}
placeholder="请输入题目名称、内容"
enterButton

@ -716,6 +716,7 @@ class Itembankstop extends Component {
rules: [{required: true, message: '请选择课程'}],
}
)(
<<<<<<< HEAD
<<<<<<< HEAD
<Cascader style={{width: '270px'}} options={options} onChange={this.handleFormzhishidian}
@ -724,6 +725,10 @@ class Itembankstop extends Component {
<InputGroup >
<Cascader style={{width: '270px'}} value={this.state.rbkc} options={options} onChange={this.handleFormzhishidian}
>>>>>>> df308ab... 合并
=======
<Cascader style={{width: '270px'}} options={options} onChange={this.handleFormzhishidian}
>>>>>>> 1036126... 合并
placeholder="请选择..."/>
)}
@ -736,9 +741,12 @@ class Itembankstop extends Component {
)(
<div className="sortinxdirection">
<<<<<<< HEAD
<<<<<<< HEAD
=======
<InputGroup >
>>>>>>> df308ab... 合并
=======
>>>>>>> 1036126... 合并
<Select style={{width: '270px'}} value={undefined} onChange={this.handleFormkechen}
placeholder="请选择...">
{knowledgepoints2 && knowledgepoints2.map((object, index) => {
@ -792,17 +800,25 @@ class Itembankstop extends Component {
rules: [{required: true, message: '请选择题型'}],
}
)(
<<<<<<< HEAD
<<<<<<< HEAD
<Select style={{width: '270px'}} disabled={this.state.boolnews} onChange={this.handleFormtixing}
=======
<InputGroup >
<Select style={{width: '270px'}} value={this.state.rbtx} onChange={this.handleFormtixing}
>>>>>>> df308ab... 合并
=======
<Select style={{width: '270px'}} onChange={this.handleFormtixing}
>>>>>>> 1036126... 合并
placeholder="请选择...">
<Option value="PROGRAM">编程题</Option>
<Option value="SINGLE">单选题</Option>
<Option value="MULTIPLE">多选题</Option>
<Option value="JUDGMENT">判断题</Option>
<<<<<<< HEAD
=======
>>>>>>> 1036126... 合并
</Select>
)}
</Form.Item>

@ -35,9 +35,18 @@ class Listjihe extends Component {
//选用
Selectingpracticaltraining = (id) => {
let data = {
let data = {}
if (this.props.exam_id === undefined) {
data = {
item_ids: [id]
}
} else {
data = {
item_ids: [id],
exam_id: this.props.exam_id === undefined ? "" : parseInt(this.props.exam_id),
}
}
this.props.getitem_baskets(data);
}
//撤销
@ -179,103 +188,6 @@ class Listjihe extends Component {
{
this.props.listjihe
}.
</div>
{
items.item_type === "PROGRAM" ?
<a href={`/problems/${items.program_attr.identifier}/edit`}>
<div className="ml10 w100s " style={{ wordBreak: "break-word" }} dangerouslySetInnerHTML={{ __html: markdownToHTML(items && items.name).replace(/▁/g, "▁▁▁") }}></div>
</a>
:
<div className="ml10 w100s markdown-body" style={{ wordBreak: "break-word" }}>
{items === undefined || items === null || items === "" ? "" :
items.name === undefined || items.name === null || items.name === "" ?
""
:
items.name.length > 0 ?
<QuillForEditor
readOnly={true}
value={itemssname}
/>
: ""
}
</div>
}
</div>
{/*内容*/}
<div className="w100s sortinxdirection ">
{items.item_type === "JUDGMENT" ?
<p className="w100s listjihetixingstits sortinxdirection ">
{
items === undefined || items === null ? "" : items.choices.map((object, index) => {
return (
<p className={index === 1 ? "sortinxdirection ml10" : "sortinxdirection "} >
<Radio disabled={false}>
{object.choice_text}
</Radio>
</p>
)
})
}
</p> :
items.item_type === "PROGRAM" ?
<p className="w100s listjihetixingstitssy sortinxdirection ">
<p className={"sortinxdirection mt15"} >
<p style={{ wordBreak: "break-word" }} dangerouslySetInnerHTML={{ __html: markdownToHTML(items.program_attr.description).replace(/▁/g, "▁▁▁") }}></p>
</p>
</p>
:
<p className="w100s listjihetixingstits verticallayout ">
{
items === undefined || items === null ? "" : items.choices.map((object, index) => {
return (
<p className={index === 0 ? "sortinxdirection" : "sortinxdirection mt15"} >
{tagArray[index]}
<p style={{ wordBreak: "break-word" }} dangerouslySetInnerHTML={{ __html: markdownToHTML(object.choice_text).replace(/▁/g, "▁▁▁") }}></p>
</p>
)
})
}
</p>
}
</div>
<div className="w100s sortinxdirection mt10">
<p
className="listjihetixing">难度<span>{items.difficulty === 1 ? "简单" : items.difficulty === 2 ? "适中" : items.difficulty === 3 ? "困难" : ""}</span>
</p>
<p
className="ml30 listjihetixing">题型<span>{items.item_type === "SINGLE" ? "单选题" : items.item_type === "MULTIPLE" ? "多选题" : items.item_type === "JUDGMENT" ? "判断题" : items.item_type === "PROGRAM" ? "编程题" : ""}</span>
</p>
</div>
{/*更新时间*/}
<div className="w100s sortinxdirection">
<div className="w50s listjihetixingstit sortinxdirection">
<p className="updatetimes lh30">更新时间{items.update_time}</p>
{
this.props.defaultActiveKey === "0" || this.props.defaultActiveKey === 0 ?
""
:
<p className="updatetimes lh30 ml45">创建者{items.author.name}</p>
}
{
items.item_type === "PROGRAM" ?
<p className="updatetimes lh30 ml45">编程语言{items.program_attr.language}</p>
: ""
}
{
items.item_type === "PROGRAM" ?
<p className="updatetimes lh30 ml45">编程语言{items.program_attr.language}</p>
: ""
}
{
items.item_type === "PROGRAM" ?
items.program_attr.status === 0 ?
<p className="updatetimes lh30 ml45 nofabu mt5">未发布</p>
: ""
: ""
}
</div>
<div className="w50s xaxisreverseorder">
{
@ -310,9 +222,6 @@ class Listjihe extends Component {
</p>
{
items.item_type === "PROGRAM" ?
this.props.Isitapopup && this.props.Isitapopup === "true" ?
""
:
<a href={`/problems/${items.program_attr.identifier}/edit`}>
<p className="viewparsings xiaoshou mr25" >
<i className="iconfont icon-bianji2 font-17 lg ml7 lh30 icontianjiadaohangcolors mr5"></i>
@ -320,9 +229,6 @@ class Listjihe extends Component {
</p>
</a>
:
this.props.Isitapopup && this.props.Isitapopup === "true" ?
""
:
<a href={`/question/edit/${items.id}`}>
<p className="viewparsings xiaoshou mr25" >
<i className="iconfont icon-bianji2 font-17 lg ml7 lh30 icontianjiadaohangcolors mr5"></i>

@ -0,0 +1,656 @@
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,
AutoComplete,
Col, Row, InputNumber, DatePicker, Button, Tag
} from "antd";
import './../questioncss/questioncom.css';
const InputGroup = Input.Group;
const {Option} = Select;
class Comthetestpapers extends Component {
constructor(props) {
super(props);
this.contentMdRef = React.createRef()
this.state = {
page: 1,
Knowpoints: [],
rbtx: undefined,
rbkc: undefined,
knowledgepoints: [],
options: [],
}
}
//初始化
componentDidMount() {
try {
this.props.getcontentMdRef(this);
} catch (e) {
}
this.setState({
options: this.props.disciplmy,
knowledgepoints: this.props.knowledgepoints,
})
}
handdisciplinesChange =(name,title)=>{
this.setState({
rbkc:[name.id,title.id]
})
this.props.form.setFieldsValue({
rbkc: [name.id,title.id],
});
if(this.props.item_banksedit.tag_disciplines.length===0){
const didata = this.props.disciplinesdata;
const knowledgepointsdata = [];
for (var i = 0; i < didata.length; i++) {
//方向
if (name.id === didata[i].id) {
const fxdidata = didata[i].sub_disciplines;
for (var j = 0; j < fxdidata.length; j++) {
//课程
if (title.id === 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,
})
}
}
handletag_disciplinesChange = (data) => {
try {
var sju=data[data.length-1].name;
this.setState({
rbzsd:sju,
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) {
data.push({
rbnd: parseInt(values.rbnd)
})
data.push({
rbtx: values.rbtx
})
data.push({
rbzsd: this.state.Knowpoints
})
data.push({
rbkc: values.rbkc
})
data.push({
classroom:values.classroom
})
data.push({
kssc:values.kssc
})
}
});
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);
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;
}
}
var tmp = JSON.parse(JSON.stringify(this.state.knowledgepoints));
for (var i = 0; i < tmp.length; i++) {
if (tmp[i].id === value) {
this.state.knowledgepoints.splice(i, 1);
}
}
this.setState({
rbzsd: valuename,
Knowpoints: this.state.Knowpoints,
knowledgepoints: this.state.knowledgepoints,
})
}
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,
})
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 arr = this.state.Knowpoints;
for (let data of arr) {
if (data.id === item.id) {
this.state.knowledgepoints.push(data);
}
}
var tmp = JSON.parse(JSON.stringify(this.state.Knowpoints));
for (var i = 0; i < tmp.length; i++) {
if (i >= index) {
var pos = this.state.Knowpoints.indexOf(tmp[i]);
this.state.Knowpoints.splice(pos, 1);
}
}
this.props.form.setFieldsValue({
rbzsd: this.state.Knowpoints,
});
this.setState({
Knowpoints: this.state.Knowpoints,
})
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) {
}
}
}
handleSearch=(value)=>{
if(value!=""){
this.props.form.setFieldsValue({
classroom:value,
// course:value
});
// this.Searchvalue(value)
}
};
handleChange=(e)=>{
console.log(e);
this.props.form.setFieldsValue({
// course:value,
classroom:e.target.value,
})
if(e.target.value){
if(e.target.value.length>60){
this.setState({
bordebool:true,
})
}else if(e.target.value.length===0){
this.setState({
bordebool:true,
})
}else{
this.setState({
bordebool:false,
})
}
}else{
this.setState({
bordebool:true
})
}
};
render() {
let {page,options} = this.state;
const {getFieldDecorator} = this.props.form;
const optionss = this.state.searchlist && this.state.searchlist.map(d => <Option key={d.name} value={d.name}>{d.name}</Option>);
var addonAfterthree=this.props.form&&this.props.form.getFieldValue('classroom');
var addonAfteronelens3=0;
if(addonAfterthree){
addonAfteronelens3=String(addonAfterthree).length;
}
return (
<div className=" clearfix educontent Contentquestionbankstyle w100s w1200fpx mt19">
<style>
{
`
.ant-form-item{
margin-bottom: 0px !important;
}
.ant-form-explain{
padding-left:0px !important;
margin-top: 3px !important;
}
.ant-select-selection{
height: 33px !important;
}
.kechen .ant-input-group{
width:258px !important;
}
.zsdd .ant-input-group{
width:258px !important;
}
.sjmc .ant-input-group{
width:258px !important;
}
.kssc .ant-input-group{
width:258px !important;
}
.rbndclass .ant-input-group{
width:258px !important;
}
.ant-input {
height: 33px !important;
}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {
outline: 0px solid rgba(24, 144, 255, 0.06) !important;
}
`
}
</style>
<div className="h12"></div>
<Form onSubmit={this.handleSubmit}>
<div className="kechen">
<Form.Item
label="课程:"
>
{getFieldDecorator("rbkc",
{
rules: [{required: true, message: '请选择课程'}],
}
)(
<div className="sortinxdirection">
<InputGroup compact>
<Cascader style={{width: '258px'}} value={this.state.rbkc} options={options} onChange={this.handleFormzhishidian}
placeholder="请选择..."/>
</InputGroup>
</div>
)}
</Form.Item>
</div>
<div className="zsdd">
<Form.Item
label="知识点:"
>
{getFieldDecorator("rbzsd"
)(
<div className="sortinxdirection">
<InputGroup compact>
<Select style={{width: '258px'}} value={this.state.rbzsd} onChange={this.handleFormkechen}
placeholder="请选择...">
{this.state.knowledgepoints && this.state.knowledgepoints.map((object, index) => {
return (
<Option value={object.id}>{object.name}</Option>
)
})}
</Select>
</InputGroup>
<div className="sortinxdirection" style={{
height: "33px",
lineHeight: "28px",
}}>
{this.state.Knowpoints === undefined ? "" : this.state.Knowpoints.map((object, index) => {
return (
<div className="mytags" style={{
position: "relative",
}}>
<p className="w100s stestcen lh32">{object.name}</p>
<i className="iconfont icon-roundclose font-25 lg ml7 icondowncolorss"
onClick={() => this.deletesobject(object, index)}></i>
</div>
)
})}
</div>
</div>
)}
</Form.Item>
</div>
<style>
{
`
.ml19{
margin-left:19px;
}
`
}
</style>
<div className="stud-class-set ">
<style>{
`
.yslzxueshis .ant-input{
border-right: none !important;
height: 38px !important;
width: 970px !important;
}
.yslzxueshisy span .ant-input-group-addon{
width: 65px !important;
background-color: #fafafa!important;
}
.yslzxueshisy .ant-input-group-addon{
width: 65px !important;
background-color: #fafafa!important;
}
`
}</style>
<div className="sjmc">
<Form.Item label="试卷名称:">
{getFieldDecorator('classroom', {
rules: [{required: true, message: "不能为空"}],
})(
<AutoComplete
onSearch={this.handleSearch}
className={"fl construction yslzxueshis "}
dataSource={optionss}
>
<Input className="yslzxueshisy " placeholder="例如:数据结构" onInput={this.handleChange} addonAfter={String(addonAfteronelens3)+"/60"} maxLength={60} />
</AutoComplete>
)}
<div id='isclassroom'></div>
</Form.Item>
</div>
</div>
<style>
{
`
.kssc .ant-form-item-label{
line-height: 38px !important;
}
`
}
</style>
<div className="kssc">
<Form.Item label="考试时长:">
{getFieldDecorator('kssc')(<InputNumber
min={0}
step={0.1}
></InputNumber>)}
<span className="ant-form-text"> 分钟</span>
</Form.Item>
</div>
{/*<div className="tixing">*/}
{/*<Form.Item*/}
{/* label="题型:"*/}
{/*>*/}
{/* {getFieldDecorator("rbtx",*/}
{/* {*/}
{/* rules: [{required: true, message: '请选择题型'}],*/}
{/* }*/}
{/* )(*/}
{/* <InputGroup compact>*/}
{/* <Select style={{width: '258px'}} value={this.state.rbtx} onChange={this.handleFormtixing}*/}
{/* placeholder="请选择...">*/}
{/* <Option value="SINGLE">单选题</Option>*/}
{/* <Option value="MULTIPLE">多选题</Option>*/}
{/* <Option value="JUDGMENT">判断题</Option>*/}
{/* <Option value="PROGRAM">编程题</Option>*/}
{/* </Select>*/}
{/* </InputGroup>*/}
{/* )}*/}
{/*</Form.Item>*/}
{/*</div>*/}
<style>
{
`
.rbndclass .ant-radio-button-wrapper{
width:106px !important;
height:33px !important;
background:#EEEEEE;
border-radius:17px !important;
color:#333333;
text-align: center !important;
border:0px !important;
margin-right: 27px !important;
margin-top: 6px !important;
}
.rbndclass .ant-radio-button-wrapper-checked {
width: 106px !important;
height: 33px !important;
background: #4CACFF !important;
border-radius: 17px !important;
text-align: center !important;
border:0px !important;
color: #ffffff !important;
margin-right: 27px !important;
margin-top: 6px!important;
}
.rbndclass .ant-radio-button-wrapper:not(:first-child)::before{
border:0px !important;
width:0px !important;
}
.rbndclass .ant-radio-button-wrapper{
border:0px !important;
}
.rbndclass .ant-radio-group{
border:0px !important;
}
.rbndclass .ant-radio-group label{
border:0px !important;
}
.rbndclass .ant-radio-group span{
border:0px !important;
}
ant-radio-button-wrapper:focus-within {
outline: 0px solid #ffffff;
}
`
}
</style>
<div className="rbndclass">
<Form.Item label="难度:">
{getFieldDecorator('rbnd',
{
rules: [{required: true, message: '请选择难度'}],
}
)(
<Radio.Group value={this.state.rbnd} onChange={this.handleFormLayoutChange}>
<Radio.Button value="1">简单</Radio.Button>
<Radio.Button value="2">适中</Radio.Button>
<Radio.Button value="3">困难</Radio.Button>
</Radio.Group>,
)}
</Form.Item>
</div>
</Form>
<div className="h20"></div>
</div>
)
}
}
const Comthetestpaperss = Form.create({name: 'Itembankstops'})(Comthetestpapers);
export default Comthetestpaperss;

@ -676,7 +676,8 @@ class Comthetestpaperst extends Component {
>
{getFieldDecorator("rbkc"
,
{initialValue: this.state.rbkc,
{
initialValue: this.state.rbkc,
rules: [{ required: true, message: '请选择课程' }],
}
)(
@ -734,9 +735,10 @@ class Comthetestpaperst extends Component {
)
})}
</div>
:
""
}
</div>
)}
</Form.Item>
</div >
<style>
{
`
@ -863,7 +865,8 @@ class Comthetestpaperst extends Component {
<Form.Item label="难度">
{getFieldDecorator('rbnd'
,
{initialValue: this.state.rbnd,
{
initialValue: this.state.rbnd,
rules: [{ required: true, message: '请选择难度' }],
}
)(

@ -5,12 +5,14 @@
box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.03);
border-radius: 2px;
}
.w1200wuh {
width: 1062px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.03);
border-radius: 2px;
}
.w1200dbl {
width: 1062px;
min-height: 60px;
@ -18,27 +20,33 @@
box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.03);
border-radius: 2px;
}
.w1200fpx {
width: 1200px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.03);
border-radius: 2px;
}
.w1200mss {
width: 1200px;
}
.w1200ms {
width: 1062px;
}
.w1200s {
width: 1062px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.03);
border-radius: 2px;
}
.h177 {
height: 177px;
}
/* 中间居中 */
.intermediatecenter {
display: flex;
@ -46,20 +54,24 @@
align-items: center;
justify-content: center;
}
/* 简单居中 */
.intermediatecenterysls {
display: flex;
align-items: center;
}
.spacearound {
display: flex;
justify-content: space-around;
}
.spacebetween {
display: flex;
justify-content: space-between;
}
/* 头顶部居中 */
.topcenter {
display: -webkit-flex;
@ -75,12 +87,14 @@
display: flex;
flex-direction: row;
}
/* x轴反方向排序 */
/* 八 七 六 五 四 三 二 一 */
.xaxisreverseorder {
display: flex;
flex-direction: row-reverse;
}
/* 垂直布局 正方向*/
/*
@ -94,26 +108,33 @@
display: flex;
flex-direction: column;
}
/* 垂直布局 反方向*/
.reversedirection {
display: flex;
flex-direction: column-reverse;
}
.w100 {
width: 100px;
}
.mt21 {
margin-top: 21px;
}
.mt23 {
margin-top: 23px;
}
.mt19 {
margin-top: 19px;
}
.mt15 {
margin-top: 10px;
}
.h40 {
height: 40px;
}
@ -124,19 +145,23 @@
padding-left: 26px;
padding-right: 26px;
}
.tophoms {
padding-top: 15px;
padding-left: 26px;
padding-right: 26px;
}
.tophomss {
padding-top: 15px;
padding-left: 15px;
padding-right: 15px;
}
.borderwd {
border: 1px solid #000000;
}
.borderwds {
width: 1020px !important;
background: #FFFFFF;
@ -144,6 +169,7 @@
margin-left: 20px;
min-height: 150px;
}
.borderwdswuh {
width: 1020px !important;
background: #FFFFFF;
@ -154,6 +180,7 @@
.borderwdswuh:hover {
background: #F9F9F9;
}
.borderwds283 {
width: 1020px !important;
min-height: 283px;
@ -161,9 +188,11 @@
border: 1px solid #DDDDDD;
margin-left: 20px;
}
.w64 {
width: 64px;
}
.w70 {
width: 70px !important;
}
@ -183,6 +212,7 @@
color: rgba(51, 51, 51, 1);
line-height: 31px;
}
/*Contentpart*/
.contentparttit {
padding-top: 10px;
@ -199,6 +229,7 @@
cursor: pointer;
}
.ml55 {
margin-right: 55px;
@ -207,6 +238,7 @@
.lg {
line-height: 42px;
}
.ml7 {
margin-left: 7px;
}
@ -215,12 +247,14 @@
color: #9E9E9E;
}
.icondowncolorss {
color: #9E9E9E;
position: absolute;
top: -20px;
right: -16px;
}
.icondowncolorssy {
position: absolute;
top: -15px;
@ -237,6 +271,7 @@
cursor: pointer;
}
.questiontypes {
width: 37px;
height: 17px;
@ -246,14 +281,17 @@
cursor: pointer;
}
.questiontypeheng {
width: 100%;
height: 1px;
background: #EEEEEE;
}
.questiontype:hover {
color: #4CACFF;
}
.questiontype:active {
color: #4CACFF;
}
@ -261,12 +299,15 @@
.w100s {
width: 100%;
}
.stestcen {
text-align: center;
}
.w70s {
width: 70%;
}
.w30s {
width: 30%;
}
@ -275,6 +316,7 @@
.w50s {
width: 50%;
}
.testpaper {
font-size: 12px;
color: #888888;
@ -313,6 +355,7 @@
font-size: 12px;
line-height: 17px;
}
.listjihetixingstit {
color: #333333;
font-size: 14px;
@ -333,12 +376,14 @@
line-height: 19px;
margin-top: 19px;
}
.listjihetixingstitsp {
color: #333333;
font-size: 14px;
line-height: 19px;
margin-top: 10px;
}
.listjihetixingstitssy {
color: #333333;
font-size: 14px;
@ -349,9 +394,11 @@
color: #BBBBBB;
font-size: 12px;
}
.mt22 {
margin-top: 22px;
}
.viewparsings {
color: #4CACFF;
font-size: 12px;
@ -367,6 +414,7 @@
line-height: 30px;
color: #FFFFFF;
}
.selectionys {
width: 88px;
height: 30px;
@ -376,6 +424,7 @@
line-height: 30px;
color: #FFFFFF;
}
.selectionss {
width: 88px;
height: 30px;
@ -385,6 +434,7 @@
line-height: 30px;
color: #FFFFFF;
}
.lh30 {
line-height: 30px;
@ -402,9 +452,11 @@
color: #808080;
font-size: 14px;
}
.pb20 {
padding-bottom: 20px;
}
.icontianjiadaohangcolor {
color: #ffffff;
}
@ -412,18 +464,23 @@
.icontianjiadaohangcolors {
color: #4CACFF;
}
.xiaoshou {
cursor: pointer;
}
.xiaoshout {
cursor: default;
}
.mt40 {
margin-top: 40px;
}
.mt42 {
margin-top: 42px;
}
.drawerbutton {
width: 88px;
height: 30px;
@ -434,6 +491,7 @@
line-height: 30px;
text-align: center;
}
.icondrawercolor {
color: #979797;
}
@ -441,9 +499,11 @@
.mt25 {
margin-top: 25px;
}
.mb26 {
margin-bottom: 26px;
}
.drawernonedatadiv {
height: 100%;
}
@ -451,12 +511,15 @@
.font-17 {
font-size: 17px;
}
.ml30 {
margin-right: 30px;
}
.mr25 {
margin-right: 25px;
}
.newbutoon {
width: 88px;
height: 42px;
@ -474,6 +537,7 @@
line-height: 42px;
text-align: center;
}
.educouddiv {
display: flex;
flex-direction: column;
@ -485,6 +549,7 @@
line-height: 19px;
}
.tabeltext-alignleftysltwo {
font-size: 14px;
color: #848282;
@ -500,6 +565,7 @@
color: #ffffff;
}
.publictask-btns {
width: 80px;
height: 34px;
@ -507,6 +573,7 @@
border-radius: 4px;
color: #ffffff;
}
.w80 {
width: 80px;
}
@ -524,6 +591,7 @@
.mt19 {
margin-top: 19px;
}
.mytags {
min-width: 106px !important;
height: 32px;
@ -531,6 +599,7 @@
border: 1px solid #DDDDDD;
margin-right: 20px;
}
.mytagss {
min-width: 106px !important;
height: 32px;
@ -538,6 +607,7 @@
border: 1px solid #DDDDDD;
margin-right: 20px;
}
.lh32 {
line-height: 32px;
}
@ -547,13 +617,16 @@
min-height: 20px;
line-height: 20px;
}
.xingcolor {
color: rgba(224, 64, 64, 1);
}
.xingtigan {
font-size: 14px;
color: rgba(51, 51, 51, 1);
}
.mr4 {
margin-right: 4px;
}
@ -570,6 +643,7 @@
background: rgba(255, 255, 255, 1);
box-shadow: 0px -2px 7px 0px rgba(1, 6, 22, 0.04);
}
.mt50 {
margin-top: 50px;
}
@ -581,6 +655,7 @@
border-radius: 4px;
border: 1px solid rgba(204, 204, 204, 1);
}
.divquxiaotest {
width: 100%;
height: 32px;
@ -589,6 +664,7 @@
line-height: 32px;
text-align: center;
}
.divbaocuntests {
width: 100%;
height: 32px;
@ -597,12 +673,14 @@
line-height: 32px;
text-align: center;
}
.divbaocun {
width: 88px;
height: 32px;
background: rgba(76, 172, 255, 1);
border-radius: 4px;
}
.sortzhenque {
width: 49px;
height: 33px;
@ -626,6 +704,7 @@
border-radius: 2px;
border: 1px solid rgba(221, 221, 221, 1);
}
.sortquxiaotest {
width: 100%;
height: 33px;
@ -652,6 +731,7 @@
text-align: center;
color: #fff;
}
.titlesttingcssmy {
min-width: 100px;
height: 32px;
@ -660,6 +740,7 @@
color: rgba(51, 51, 51, 1);
text-align: center;
}
.minleng40 {
min-height: 40px;
}
@ -675,6 +756,7 @@
.minheight {
min-height: 500px !important;
}
.pd20 {
padding: 20px;
}
@ -682,15 +764,18 @@
.ml58 {
margin-left: 58px;
}
.questionstishu {
color: #888888;
font-size: 14px;
}
.questionstotal {
color: #333333;
font-size: 14px;
}
.pagertdstcolor {
color: #888888;
font-size: 12px;
@ -705,10 +790,12 @@
font-size: 14px;
}
.yldxtits {
color: #888888;
font-size: 14px;
}
.mt25 {
margin-top: 25px;
}
@ -716,29 +803,35 @@
.postitonrelati {
position: relative;
}
.postitonrelatis {
position: absolute;
right: 2px;
top: 11px;
}
.postitonrelatiss {
position: absolute;
right: 2px;
top: -41px;
}
.postitonrelatisss {
position: absolute;
right: 2px;
top: -39px;
}
.postitonrelatisssy {
position: absolute;
right: 1px;
top: 52px;
}
.mt50 {
margin-top: 50px;
}
.szdfd {
width: 100px;
height: 40px;
@ -750,6 +843,7 @@
margin-right: 27px;
font-size: 12px;
}
.scd {
width: 100px;
height: 40px;
@ -761,6 +855,7 @@
font-size: 12px;
}
.szdfds {
width: 100px;
height: 40px;
@ -793,17 +888,21 @@
font-size: 14px !important;
}
.lh28 {
line-height: 28px;
}
.h20 {
height: 20px;
background-color: #fff;
}
.lh20 {
line-height: 20px;
background-color: #fff;
}
.lh20s {
line-height: 20px;
}
@ -819,12 +918,15 @@
.lh35 {
line-height: 35px;
}
.mt7 {
margin-top: 7px;
}
.ml18 {
margin-left: 18px;
}
.btques {
width: 1021px;
background: rgba(249, 249, 249, 1);
@ -847,6 +949,7 @@
line-height: 34px;
text-align: center;
}
.lh34 {
line-height: 34px;
}
@ -868,10 +971,12 @@
.textcen {
text-align: center;
}
.listjihecolors:hover {
background: #F9F9F9;
background-color: #F9F9F9;
}
.nofabu {
width: 46px;
@ -910,6 +1015,7 @@
border-radius: 4px;
top: -50%;
}
.shitikussmys {
width: 29px !important;
height: 20px !important;
@ -931,6 +1037,7 @@
white-space: nowrap;
cursor: default;
}
.ball {
width: 8px;
height: 8px;
@ -950,6 +1057,7 @@
.mr15 {
margin-right: 15px;
}
.fangdatwo {
background: #fefefe;
background-color: #fefefe;
@ -967,102 +1075,3 @@
.searchwidth {
width: 347px !important;
}
.lh26{
line-height: 26px !important;
}
.tites{
color: #888888 !important;
}
.ant-popover-inner-content{
padding: 0px !important;
}
.huanhan{
flex-wrap: wrap;
}
.mb20{
margin-bottom: 20px;
}
.inpustred .ant-input{
border: 1px solid #f30707;
border-radius: 5px;
}
.mt15{
margin-top: 15px;
}
.conditionsetting{
width:64px;
height:21px;
font-size:16px;
color:#333333;
line-height:21px;
}
.hengxians{
width:1021px;
height:1px;
background: #EEEEEE;
}
.mt13{
margin-top: 13px;
}
.inpustredss .ant-input-number{
border: 1px solid #f30707;
border-radius: 5px;
}
.inpustredssdiv button {
border-radius: 50%;
width: 38px;
height: 38px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.inpustredssdiv .ant-input-number-input{
text-align: center;
}
.lh32{
line-height: 32px;
}
.ml23{
margin-left: 23px;
}
.ml12{
margin-left: 12px;
}
.mr12{
margin-right: 12px;
}
.tishiyuyan{
color: #888888 !important;
font-size:14px;
}
.tishiyuyans{
color: #4CACFF !important;
font-size:14px;
}
.tikutask-btn{
width:80px;
height:34px;
background:rgba(204,204,204,1);
border-radius:4px;
}
.tikutask-btns{
width:80px;
height:34px;
background:rgba(76,172,255,1);
border-radius:4px;
}
.w100{
width: 100px !important;
}
.h34{
height: 34px !important;
}
.lh34{
line-height: 34px !important;
}

@ -11,8 +11,10 @@ import Bottomsubmit from "../../modules/modals/Bottomsubmit";
import Seeoagertits from "./component/Seeoagertits";
import Comthetestpaperst from '../question/comthetestpaper/Comthetestpaperst';
import Paperlibraryseeid_itemss from './component/Paperlibraryseeid_itemss';
import JudquestionEditor from "../question/component/JudquestionEditor";
import NewMyShixunModel from "../question/NewMyShixunModel";
//试卷编辑
class Paperlibraryeditid extends Component {
constructor(props) {
@ -176,6 +178,16 @@ class Paperlibraryeditid extends Component {
this.contentMdRef = Ref;
}
<<<<<<< HEAD
setnewmyshixunmodelbool = (bool) => {
if (bool === true) {
let scrollToTop = window.setInterval(function () {
let pos = window.pageYOffset;
if (pos > 0) {
window.scrollTo(0, pos - 20); // how far to scroll on each step
} else {
window.clearInterval(scrollToTop);
=======
setnewmyshixunmodelbool=(bool)=>{
if(bool===true){
let scrollToTop = window.setInterval(function() {
@ -184,6 +196,7 @@ class Paperlibraryeditid extends Component {
window.scrollTo( 0, pos - 20 ); // how far to scroll on each step
} else {
window.clearInterval( scrollToTop );
>>>>>>> 1036126... 合并
}
}, 2);
}

Loading…
Cancel
Save