Merge branches 'dev_item_bank' and 'yslnewtiku' of https://bdgit.educoder.net/Hjqreturn/educoder into dev_item_bank
Conflicts: public/react/src/AppConfig.jsyslnewtiku
commit
33c857c971
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 362 KiB After Width: | Height: | Size: 373 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,51 @@
|
|||||||
|
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 SingleEditor from './../component/SingleEditor';
|
||||||
|
class Choicequestion extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
page:1,
|
||||||
|
Knowpoints:[]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//初始化
|
||||||
|
componentDidMount(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let {page}=this.state;
|
||||||
|
const { getFieldDecorator } = this.props.form;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className=" clearfix educontent Contentquestionbankstyle w100s w1200fpx mt19" >
|
||||||
|
<SingleEditor>
|
||||||
|
|
||||||
|
</SingleEditor>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
const Choicequestions = Form.create({ name: 'Choicequestions' })(Choicequestion);
|
||||||
|
export default Choicequestions;
|
@ -0,0 +1,237 @@
|
|||||||
|
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,
|
||||||
|
Tabs,
|
||||||
|
Input,
|
||||||
|
Popover
|
||||||
|
} from "antd";
|
||||||
|
import './../questioncss/questioncom.css';
|
||||||
|
import NoneDatas from '../component/NoneDatas';
|
||||||
|
import LoadingSpin from '../../../common/LoadingSpin';
|
||||||
|
import Contentquestionbank from "./Contentquestionbank";
|
||||||
|
import Listjihe from "./Listjihe";
|
||||||
|
const { TabPane } = Tabs;
|
||||||
|
const Search = Input.Search;
|
||||||
|
class Contentpart extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
page:1,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//初始化
|
||||||
|
componentDidMount(){
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let {page}=this.state;
|
||||||
|
let {defaultActiveKey}=this.props;
|
||||||
|
const content = (
|
||||||
|
<div className="questiontypes" style={{
|
||||||
|
width:'93px',
|
||||||
|
height:'161px',
|
||||||
|
}}>
|
||||||
|
<p className="questiontype " onClick={()=>this.props.setitem_types("SINGLE")}>单选题</p>
|
||||||
|
<p className="questiontypeheng" ></p>
|
||||||
|
<p className="questiontype " onClick={()=>this.props.setitem_types("MULTIPLE")}>多选题</p>
|
||||||
|
<p className="questiontypeheng"></p>
|
||||||
|
<p className="questiontype " onClick={()=>this.props.setitem_types("JUDGMENT")}>判断题</p>
|
||||||
|
<p className="questiontypeheng"></p>
|
||||||
|
<p className="questiontype " onClick={()=>this.props.setitem_types("PROGRAM")}>编程题</p>
|
||||||
|
<p className="questiontypeheng"></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
const contents = (
|
||||||
|
<div className="questiontypes" style={{
|
||||||
|
width:'93px',
|
||||||
|
height:'120px',
|
||||||
|
}}>
|
||||||
|
<p className="questiontype " onClick={()=>this.props.setdifficulty(1)}>简单</p>
|
||||||
|
<p className="questiontypeheng"></p>
|
||||||
|
<p className="questiontype " onClick={()=>this.props.setdifficulty(2)}>适中</p>
|
||||||
|
<p className="questiontypeheng"></p>
|
||||||
|
<p className="questiontype " onClick={()=>this.props.setdifficulty(3)}>困难</p>
|
||||||
|
<p className="questiontypeheng"></p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
const buttonWidth = 70;
|
||||||
|
//console.log("Contentpart");
|
||||||
|
//console.log(this.props);
|
||||||
|
return (
|
||||||
|
<div className=" clearfix mt40">
|
||||||
|
<div className="educontent mt10 pb20 w1200s">
|
||||||
|
<div className="w1200ms contentparttit" style={{
|
||||||
|
position: "relative",
|
||||||
|
}}>
|
||||||
|
<style>
|
||||||
|
{
|
||||||
|
`
|
||||||
|
.contentparttit .ant-tabs-nav .ant-tabs-tab{
|
||||||
|
margin: 10px 10px 10px 0 !important;
|
||||||
|
}
|
||||||
|
.contentparttit .ant-tabs-nav .ant-tabs-ink-bar{
|
||||||
|
width: 31px !important;
|
||||||
|
left: 14px;
|
||||||
|
}
|
||||||
|
`
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<Tabs defaultActiveKey={defaultActiveKey} onChange={(e)=>this.props.callback(e)}>
|
||||||
|
<TabPane tab="公共" key="1">
|
||||||
|
</TabPane>
|
||||||
|
<TabPane tab="我的" key="0">
|
||||||
|
</TabPane>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
<div className=" mt19" style={{
|
||||||
|
position:"absolute",
|
||||||
|
top: "0px",
|
||||||
|
right:" 0px",
|
||||||
|
paddingRight: "20px",
|
||||||
|
}}>
|
||||||
|
<style>
|
||||||
|
{
|
||||||
|
`
|
||||||
|
.xaxisreverseorder .ant-input-group-addon{
|
||||||
|
width: 60px !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.xaxisreverseorder .ant-input-lg {
|
||||||
|
height: 41px;}
|
||||||
|
|
||||||
|
.xaxisreverseorder .ant-popover{
|
||||||
|
top: 348px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.ant-popover-inner-content {
|
||||||
|
padding:0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
`
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div className="xaxisreverseorder">
|
||||||
|
{
|
||||||
|
defaultActiveKey===0||defaultActiveKey==="0"?
|
||||||
|
<a href={'/question/newitem'}>
|
||||||
|
<div className="newbutoon">
|
||||||
|
<p className="newbutoontes" >新增</p>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
:""
|
||||||
|
}
|
||||||
|
<Popover placement="bottom" content={contents} trigger="click" visible={this.props.visiblemys} onVisibleChange={()=>this.props.handleVisibleChange(true)}>
|
||||||
|
<div className=" sortinxdirection mr10">
|
||||||
|
|
||||||
|
<div className="subjecttit">
|
||||||
|
难度
|
||||||
|
</div>
|
||||||
|
<i className="iconfont icon-sanjiaoxing-down font-12 lg ml7 icondowncolor"></i>
|
||||||
|
</div>
|
||||||
|
</Popover>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Popover placement="bottom" content={content} trigger="click" visible={this.props.visiblemyss} onVisibleChange={()=>this.props.handleVisibleChanges(true)}>
|
||||||
|
<div className="sortinxdirection mr40">
|
||||||
|
<div className="subjecttit">
|
||||||
|
题型
|
||||||
|
</div>
|
||||||
|
<i className="iconfont icon-sanjiaoxing-down font-12 lg ml7 icondowncolor"></i>
|
||||||
|
</div>
|
||||||
|
</Popover>
|
||||||
|
<Search
|
||||||
|
style={{ width: "347px",marginRight:"60px",}}
|
||||||
|
placeholder="请输入题目名称、内容"
|
||||||
|
enterButton
|
||||||
|
size="large"
|
||||||
|
onInput={(e)=>this.props.setdatafunsval(e)}
|
||||||
|
onSearch={ (value)=>this.props.setdatafuns(value)} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/*内容*/}
|
||||||
|
{
|
||||||
|
this.props.Contentdata.items === undefined ||this.props.Contentdata.items === null||this.props.Contentdata.items.length===0 ?
|
||||||
|
<div className=" w100s mb10"></div>
|
||||||
|
:
|
||||||
|
<div className=" w100s mb10">
|
||||||
|
{
|
||||||
|
defaultActiveKey===1||defaultActiveKey==="1"?
|
||||||
|
<Contentquestionbank {...this.props} {...this.state} selectallquestionsonthispage={()=>this.props.selectallquestionsonthispage()}></Contentquestionbank>
|
||||||
|
:""
|
||||||
|
}
|
||||||
|
{
|
||||||
|
defaultActiveKey===0||defaultActiveKey==="0"?
|
||||||
|
<Contentquestionbank {...this.props} {...this.state} selectallquestionsonthispage={()=>this.props.selectallquestionsonthispage()}></Contentquestionbank>
|
||||||
|
:""
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
<div className="minheight">
|
||||||
|
{/*列表集合*/}
|
||||||
|
<div className=" w100s">
|
||||||
|
{
|
||||||
|
this.props.booljupyterurls===true?
|
||||||
|
<LoadingSpin></LoadingSpin>
|
||||||
|
:
|
||||||
|
this.props.Contentdata.items === undefined ||this.props.Contentdata.items === null||this.props.Contentdata.items.length===0?
|
||||||
|
<NoneDatas></NoneDatas>
|
||||||
|
|
||||||
|
|
||||||
|
: this.props.Contentdata.items.map((object, index) => {
|
||||||
|
return (
|
||||||
|
<Listjihe {...this.state} {...this.props} items={object}
|
||||||
|
getitem_basketss={(id)=>this.props.getitem_basketss(id)}
|
||||||
|
getitem_baskets={(e)=>this.props.getitem_baskets(e)}
|
||||||
|
showmodels={(e)=>this.props.showmodels(e)}
|
||||||
|
showmodelysl={(e)=>this.props.showmodelysl(e)}>
|
||||||
|
|
||||||
|
</Listjihe>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
export default Contentpart
|
@ -0,0 +1,70 @@
|
|||||||
|
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
|
||||||
|
} from "antd";
|
||||||
|
import './../questioncss/questioncom.css';
|
||||||
|
class Contentquestionbank extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
page:1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//初始化
|
||||||
|
componentDidMount(){
|
||||||
|
////console.log("componentDidMount");
|
||||||
|
////console.log(this.state);
|
||||||
|
////console.log(this.props);
|
||||||
|
// let homeworkid = this.props.match.params.homeworkid;
|
||||||
|
// let url = "/homework_commons/" + homeworkid + "/end_groups.json";
|
||||||
|
// axios.get(url).then((response) => {
|
||||||
|
// if (response.status === 200) {
|
||||||
|
// this.setState({})
|
||||||
|
// }
|
||||||
|
// }).catch((error) => {
|
||||||
|
// ////console.log(error)
|
||||||
|
// });
|
||||||
|
|
||||||
|
}
|
||||||
|
onChange=(e)=> {
|
||||||
|
////console.log(`checked = ${e.target.checked}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let {page}=this.state;
|
||||||
|
|
||||||
|
return (
|
||||||
|
|
||||||
|
<div className=" clearfix mt5 Contentquestionbankstyle">
|
||||||
|
<div className="educontent mt10 w100s">
|
||||||
|
<div className="sortinxdirection w100s" >
|
||||||
|
<div className="sortinxdirection w50s">
|
||||||
|
<Checkbox onChange={()=>this.props.selectallquestionsonthispage()}></Checkbox>
|
||||||
|
<p className="setequesbank ml20">选用本页全部试题</p>
|
||||||
|
</div>
|
||||||
|
<div className="xaxisreverseorder testpaper w50s">
|
||||||
|
共{this.props.items_count?this.props.items_count:0}个试题
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
export default Contentquestionbank ;
|
@ -0,0 +1,604 @@
|
|||||||
|
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';
|
||||||
|
|
||||||
|
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.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,
|
||||||
|
|
||||||
|
////console.log("componentDidMount");
|
||||||
|
////console.log(this.state);
|
||||||
|
////console.log(this.props);
|
||||||
|
// let homeworkid = this.props.match.params.homeworkid;
|
||||||
|
// let url = "/homework_commons/" + homeworkid + "/end_groups.json";
|
||||||
|
// axios.get(url).then((response) => {
|
||||||
|
// if (response.status === 200) {
|
||||||
|
// this.setState({})
|
||||||
|
// }
|
||||||
|
// }).catch((error) => {
|
||||||
|
// ////console.log(error)
|
||||||
|
// });()
|
||||||
|
// 题型
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps) {
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.props.item_banksedit.discipline &&this.props.item_banksedit.sub_discipline) {
|
||||||
|
this.handdisciplinesChange(this.props.item_banksedit.discipline,this.props.item_banksedit.sub_discipline);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (prevProps.disciplmy !== this.props.disciplmy) {
|
||||||
|
this.setState({
|
||||||
|
options: this.props.disciplmy
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
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) {
|
||||||
|
// ////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);
|
||||||
|
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) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let {page, options} = this.state;
|
||||||
|
const {getFieldDecorator} = this.props.form;
|
||||||
|
//console.log("renderrenderrender");
|
||||||
|
//console.log(this.props.item_banksedit);
|
||||||
|
//console.log("renderrenderrendersssss");
|
||||||
|
//console.log(this.state.rbtx);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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.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 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}</p>*/}
|
||||||
|
{/* <i className="iconfont icon-roundclose font-25 lg ml7 icondowncolorss" onClick={()=>this.deletesobject(object,index)}></i>*/}
|
||||||
|
{/* </div>*/}
|
||||||
|
{/* )*/}
|
||||||
|
{/* })}*/}
|
||||||
|
|
||||||
|
{/*</div>*/}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Form.Item>
|
||||||
|
<Form onSubmit={this.handleSubmit}>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
|
||||||
|
<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.Item>*/}
|
||||||
|
{/* <Button type="primary" htmlType="submit" className="login-form-button">*/}
|
||||||
|
{/* 提交*/}
|
||||||
|
{/* </Button>*/}
|
||||||
|
{/*</Form.Item>*/}
|
||||||
|
|
||||||
|
</Form>
|
||||||
|
<div className="h20"></div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const Itembankstops = Form.create({name: 'Itembankstops'})(Itembankstop);
|
||||||
|
export default Itembankstops;
|
@ -0,0 +1,37 @@
|
|||||||
|
import React, { Component } from 'react';
|
||||||
|
import { getImageUrl , getUrl } from 'educoder';
|
||||||
|
|
||||||
|
class NoneData extends Component{
|
||||||
|
constructor(props) {
|
||||||
|
super(props)
|
||||||
|
}
|
||||||
|
render(){
|
||||||
|
const { style } = this.props;
|
||||||
|
return(
|
||||||
|
<div className="edu-tab-con-box clearfix edu-txt-center intermediatecenter" style={ style || { width:"100%",height:"100%"}}>
|
||||||
|
<style>
|
||||||
|
{`
|
||||||
|
.edu-tab-con-box{
|
||||||
|
padding:100px 0px;
|
||||||
|
}
|
||||||
|
.ant-modal-body .edu-tab-con-box{
|
||||||
|
padding:0px!important;
|
||||||
|
}
|
||||||
|
img.edu-nodata-img{
|
||||||
|
margin: 40px auto 20px;
|
||||||
|
}
|
||||||
|
.zenwuxgsj{
|
||||||
|
font-size:17px;
|
||||||
|
font-family:MicrosoftYaHei;
|
||||||
|
color:rgba(136,136,136,1);
|
||||||
|
}
|
||||||
|
`}
|
||||||
|
</style>
|
||||||
|
<img className="edu-nodata-img mb20" src={getUrl("/images/educoder/nodata.png")}/>
|
||||||
|
<p className="edu-nodata-p mb10 zenwuxgsj">暂无相关数据</p>
|
||||||
|
<p className="edu-nodata-p mb20 mt4 zenwuxgsj">请选择试题进行组卷</p>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export default NoneData;
|
@ -0,0 +1,36 @@
|
|||||||
|
import React, { Component } from 'react';
|
||||||
|
import { getImageUrl , getUrl } from 'educoder';
|
||||||
|
|
||||||
|
class NoneDatas extends Component{
|
||||||
|
constructor(props) {
|
||||||
|
super(props)
|
||||||
|
}
|
||||||
|
render(){
|
||||||
|
const { style } = this.props;
|
||||||
|
return(
|
||||||
|
<div className="edu-tab-con-box clearfix edu-txt-center intermediatecenter" style={ style || { width:"100%",height:"100%"}}>
|
||||||
|
<style>
|
||||||
|
{`
|
||||||
|
.edu-tab-con-box{
|
||||||
|
padding:100px 0px;
|
||||||
|
}
|
||||||
|
.ant-modal-body .edu-tab-con-box{
|
||||||
|
padding:0px!important;
|
||||||
|
}
|
||||||
|
img.edu-nodata-img{
|
||||||
|
margin: 40px auto 20px;
|
||||||
|
}
|
||||||
|
.zenwuxgsj{
|
||||||
|
font-size:17px;
|
||||||
|
font-family:MicrosoftYaHei;
|
||||||
|
color:rgba(136,136,136,1);
|
||||||
|
}
|
||||||
|
`}
|
||||||
|
</style>
|
||||||
|
<img className="edu-nodata-img mb20" src={getUrl("/images/educoder/nodata.png")}/>
|
||||||
|
<p className="edu-nodata-p mb10 zenwuxgsj">暂无相关数据</p>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export default NoneDatas;
|
@ -0,0 +1,43 @@
|
|||||||
|
import React, { Component } from 'react';
|
||||||
|
import {getImageUrl} from 'educoder';
|
||||||
|
import { Modal} from 'antd';
|
||||||
|
import axios from 'axios';
|
||||||
|
import './../questioncss/questioncom.css'
|
||||||
|
//立即申请试用
|
||||||
|
class QuestionModal extends Component {
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state={
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
render() {
|
||||||
|
|
||||||
|
return(
|
||||||
|
<Modal
|
||||||
|
keyboard={false}
|
||||||
|
closable={false}
|
||||||
|
footer={null}
|
||||||
|
destroyOnClose={true}
|
||||||
|
title="提示"
|
||||||
|
centered={true}
|
||||||
|
visible={this.props.modalsType===undefined?false:this.props.modalsType}
|
||||||
|
width="442px"
|
||||||
|
>
|
||||||
|
<div className="educouddiv">
|
||||||
|
<div className={"tabeltext-alignleft mt10"}><p className="titiles">{this.props.titilesm}</p></div>
|
||||||
|
<div className={"tabeltext-alignleft mt10"}><p className="titiles">{this.props.titiless}</p></div>
|
||||||
|
<div className="clearfix mt30 edu-txt-center">
|
||||||
|
<a className="task-btn mr30 w80" onClick={()=>this.props.modalCancel()}>取消</a>
|
||||||
|
<a className="task-btn task-btn-orange w80" onClick={()=>this.props.setDownload()}>确定</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Modal>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default QuestionModal;
|
@ -0,0 +1,66 @@
|
|||||||
|
import React, { Component } from 'react';
|
||||||
|
import {getImageUrl} from 'educoder';
|
||||||
|
import { Modal} from 'antd';
|
||||||
|
import axios from 'axios';
|
||||||
|
import './../questioncss/questioncom.css'
|
||||||
|
//立即申请试用
|
||||||
|
class QuestionModals extends Component {
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state={
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
render() {
|
||||||
|
|
||||||
|
return(
|
||||||
|
<Modal
|
||||||
|
keyboard={false}
|
||||||
|
closable={false}
|
||||||
|
footer={null}
|
||||||
|
destroyOnClose={true}
|
||||||
|
title="提示"
|
||||||
|
centered={true}
|
||||||
|
visible={this.props.modalsTypes===undefined?false:this.props.modalsTypes}
|
||||||
|
width="442px"
|
||||||
|
>
|
||||||
|
<div className="educouddiv">
|
||||||
|
<div className={"tabeltext-alignleft mt10"}><p className="titiles">是否删除试题栏中{
|
||||||
|
|
||||||
|
this.props.titilesms&&this.props.titilesms==="SINGLE"?
|
||||||
|
"单选题"
|
||||||
|
:
|
||||||
|
this.props.titilesms&&this.props.titilesms==="MULTIPLE"?
|
||||||
|
"多选题"
|
||||||
|
:
|
||||||
|
this.props.titilesms&&this.props.titilesms==="JUDGMENT"?
|
||||||
|
"判断题"
|
||||||
|
:
|
||||||
|
this.props.titilesms&&this.props.titilesms==="COMPLETION"?
|
||||||
|
"填空题"
|
||||||
|
:
|
||||||
|
this.props.titilesms&&this.props.titilesms==="SUBJECTIVE"?
|
||||||
|
"简答题"
|
||||||
|
:
|
||||||
|
this.props.titilesms&&this.props.titilesms==="PROGRAM"?
|
||||||
|
"编程题"
|
||||||
|
:
|
||||||
|
this.props.titilesms&&this.props.titilesms==="PRACTICAL"?
|
||||||
|
"实训题"
|
||||||
|
:""
|
||||||
|
|
||||||
|
}</p></div>
|
||||||
|
<div className="clearfix mt30 edu-txt-center">
|
||||||
|
<a className="task-btn mr30 w80" onClick={()=>this.props.modalCancels()}>取消</a>
|
||||||
|
<a className="task-btn task-btn-orange w80" onClick={()=>this.props.setDownloads(this.props.titilesms)}>确定</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Modal>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default QuestionModals;
|
@ -0,0 +1,611 @@
|
|||||||
|
.w1200{
|
||||||
|
width:1062px;
|
||||||
|
height:177px;
|
||||||
|
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;
|
||||||
|
background:rgba(255,255,255,1);
|
||||||
|
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;
|
||||||
|
flex-direction: column;
|
||||||
|
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;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* x轴正方向排序 */
|
||||||
|
/* 一 二 三 四 五 六 七 八 */
|
||||||
|
.sortinxdirection{
|
||||||
|
display: flex;
|
||||||
|
flex-direction:row;
|
||||||
|
}
|
||||||
|
/* x轴反方向排序 */
|
||||||
|
/* 八 七 六 五 四 三 二 一 */
|
||||||
|
.xaxisreverseorder{
|
||||||
|
display: flex;
|
||||||
|
flex-direction:row-reverse;
|
||||||
|
}
|
||||||
|
/* 垂直布局 正方向*/
|
||||||
|
/* 一
|
||||||
|
二
|
||||||
|
三
|
||||||
|
四
|
||||||
|
五
|
||||||
|
六
|
||||||
|
七
|
||||||
|
八 */
|
||||||
|
.verticallayout{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tophom{
|
||||||
|
padding-top: 33px;
|
||||||
|
padding-bottom: 40px;
|
||||||
|
padding-left: 26px;
|
||||||
|
padding-right: 26px;
|
||||||
|
}
|
||||||
|
.tophoms{
|
||||||
|
padding-top: 15px;
|
||||||
|
padding-left: 26px;
|
||||||
|
padding-right: 26px;
|
||||||
|
}
|
||||||
|
.borderwd{
|
||||||
|
border: 1px solid #000000;
|
||||||
|
}
|
||||||
|
.borderwds{
|
||||||
|
width: 1020px !important;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border: 1px solid #DDDDDD;
|
||||||
|
margin-left: 20px;
|
||||||
|
min-height:150px;
|
||||||
|
}
|
||||||
|
.borderwds283{
|
||||||
|
width: 1020px !important;
|
||||||
|
min-height:283px;
|
||||||
|
background:#F9F9F9;
|
||||||
|
border:1px solid #DDDDDD;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
.w64{
|
||||||
|
width: 64px;
|
||||||
|
}
|
||||||
|
.w70{
|
||||||
|
width: 70px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tophomsembold{
|
||||||
|
height:21px;
|
||||||
|
font-size:16px;
|
||||||
|
color:#333333;
|
||||||
|
line-height:21px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tophomsembolds{
|
||||||
|
width:42px;
|
||||||
|
height:19px;
|
||||||
|
font-size:14px;
|
||||||
|
font-family:MicrosoftYaHeiSemibold;
|
||||||
|
color:rgba(51,51,51,1);
|
||||||
|
line-height:31px;
|
||||||
|
}
|
||||||
|
/*Contentpart*/
|
||||||
|
.contentparttit{
|
||||||
|
padding-top: 10px;
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subjecttit{
|
||||||
|
width:28px;
|
||||||
|
height:19px;
|
||||||
|
font-size:14px;
|
||||||
|
color:rgba(51,51,51,1);
|
||||||
|
line-height: 42px;
|
||||||
|
cursor:pointer;
|
||||||
|
|
||||||
|
}
|
||||||
|
.ml55{
|
||||||
|
margin-right: 55px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg{
|
||||||
|
line-height: 42px;
|
||||||
|
}
|
||||||
|
.ml7{
|
||||||
|
margin-left: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icondowncolor{
|
||||||
|
color:#9E9E9E;
|
||||||
|
|
||||||
|
}
|
||||||
|
.icondowncolorss{
|
||||||
|
color: #9E9E9E;
|
||||||
|
position: absolute;
|
||||||
|
top: -20px;
|
||||||
|
right: -16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.questiontype{
|
||||||
|
width: 100%;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 17px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 11px;
|
||||||
|
cursor:pointer;
|
||||||
|
|
||||||
|
}
|
||||||
|
.questiontypes{
|
||||||
|
width:37px;
|
||||||
|
height:17px;
|
||||||
|
font-size:12px;
|
||||||
|
color:rgba(51,51,51,1);
|
||||||
|
line-height:17px;
|
||||||
|
cursor:pointer;
|
||||||
|
|
||||||
|
}
|
||||||
|
.questiontypeheng{
|
||||||
|
width:100%;
|
||||||
|
height:1px;
|
||||||
|
background: #EEEEEE;
|
||||||
|
}
|
||||||
|
.questiontype:hover{
|
||||||
|
color: #4CACFF;
|
||||||
|
}
|
||||||
|
.questiontype:active{
|
||||||
|
color: #4CACFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w100s{
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
.stestcen{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.w70s{
|
||||||
|
width:70%;
|
||||||
|
}
|
||||||
|
.w30s{
|
||||||
|
width:70%;
|
||||||
|
}
|
||||||
|
.w50s{
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.testpaper{
|
||||||
|
font-size:12px;
|
||||||
|
color:#888888;
|
||||||
|
line-height:28px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setequesbank{
|
||||||
|
font-size:14px;
|
||||||
|
color:#333333;
|
||||||
|
line-height:28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Contentquestionbankstyle{
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pd20{
|
||||||
|
padding-top: 20px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
padding-left: 30px;
|
||||||
|
padding-right: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*listjihe*/
|
||||||
|
.listjihetixing{
|
||||||
|
color: #888888;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listjihetixings{
|
||||||
|
color: #333333;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 17px;
|
||||||
|
}
|
||||||
|
.listjihetixingstit{
|
||||||
|
color: #333333;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 17px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.listjihetixingstits{
|
||||||
|
color: #333333;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height:19px;
|
||||||
|
margin-top: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.updatetimes{
|
||||||
|
color: #BBBBBB;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.mt22{
|
||||||
|
margin-top: 22px;
|
||||||
|
}
|
||||||
|
.viewparsings{
|
||||||
|
color:#4CACFF;
|
||||||
|
font-size:12px;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selection{
|
||||||
|
width:88px;
|
||||||
|
height:30px;
|
||||||
|
background:#33BD8C;
|
||||||
|
border-radius:4px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 30px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.selectionss{
|
||||||
|
width:88px;
|
||||||
|
height:30px;
|
||||||
|
background:#eeeeee;
|
||||||
|
border-radius:4px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 30px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.lh30{
|
||||||
|
line-height: 30px;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.analysis{
|
||||||
|
height:19px;
|
||||||
|
font-size:14px;
|
||||||
|
color:#333333;
|
||||||
|
line-height:19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.testfondex{
|
||||||
|
color: #808080;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.pb20{
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
.icontianjiadaohangcolor{
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icontianjiadaohangcolors{
|
||||||
|
color: #4CACFF;
|
||||||
|
}
|
||||||
|
.xiaoshou{
|
||||||
|
cursor:pointer
|
||||||
|
}
|
||||||
|
.mt40{
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
.mt42{
|
||||||
|
margin-top: 42px;
|
||||||
|
}
|
||||||
|
.drawerbutton{
|
||||||
|
width:88px;
|
||||||
|
height:30px;
|
||||||
|
background:#4CACFF;
|
||||||
|
border-radius:4px;
|
||||||
|
font-size:14px;
|
||||||
|
color:#ffffff;
|
||||||
|
line-height:30px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.icondrawercolor{
|
||||||
|
color: #979797;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mt25{
|
||||||
|
margin-top: 25px;
|
||||||
|
}
|
||||||
|
.mb26{
|
||||||
|
margin-bottom: 26px;
|
||||||
|
}
|
||||||
|
.drawernonedatadiv{
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-17{
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
.ml30{
|
||||||
|
margin-right: 30px;
|
||||||
|
}
|
||||||
|
.mr25{
|
||||||
|
margin-right: 25px;
|
||||||
|
}
|
||||||
|
.newbutoon{
|
||||||
|
width:88px;
|
||||||
|
height:42px;
|
||||||
|
background:#33BD8C;
|
||||||
|
line-height: 42px;
|
||||||
|
border-radius:4px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.newbutoontes{
|
||||||
|
width:100%;
|
||||||
|
height:42px;
|
||||||
|
font-size:14px;
|
||||||
|
color:#ffffff;
|
||||||
|
line-height:42px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.educouddiv {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabeltext-alignleftysl{
|
||||||
|
font-size:14px;
|
||||||
|
color:#000000;
|
||||||
|
line-height:19px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.tabeltext-alignleftysltwo{
|
||||||
|
font-size:14px;
|
||||||
|
color:#848282;
|
||||||
|
line-height:19px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.publictask-btn{
|
||||||
|
width:80px;
|
||||||
|
height:34px;
|
||||||
|
background:#CCCCCC;
|
||||||
|
border-radius:4px;
|
||||||
|
color: #ffffff;
|
||||||
|
|
||||||
|
}
|
||||||
|
.publictask-btns{
|
||||||
|
width:80px;
|
||||||
|
height:34px;
|
||||||
|
background:#4CACFF;
|
||||||
|
border-radius:4px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
.w80{
|
||||||
|
width: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titiles{
|
||||||
|
color: #333333;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h12{
|
||||||
|
height: 12px;
|
||||||
|
min-height: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mt19{
|
||||||
|
margin-top: 19px;
|
||||||
|
}
|
||||||
|
.mytags{
|
||||||
|
width:106px;
|
||||||
|
height:32px;
|
||||||
|
border-radius:2px;
|
||||||
|
border:1px solid #DDDDDD;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
.lh32{
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h20{
|
||||||
|
height: 20px;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xingtigans{
|
||||||
|
width:100%;
|
||||||
|
font-size:14px;
|
||||||
|
color:rgba(136,136,136,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottomdivs{
|
||||||
|
width:100%;
|
||||||
|
height:55px;
|
||||||
|
background:rgba(255,255,255,1);
|
||||||
|
box-shadow:0px -2px 7px 0px rgba(1,6,22,0.04);
|
||||||
|
}
|
||||||
|
.mt50{
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divquxiao{
|
||||||
|
width:88px;
|
||||||
|
height:32px;
|
||||||
|
background:rgba(255,255,255,1);
|
||||||
|
border-radius:4px;
|
||||||
|
border:1px solid rgba(204,204,204,1);
|
||||||
|
}
|
||||||
|
.divquxiaotest{
|
||||||
|
width:100%;
|
||||||
|
height:32px;
|
||||||
|
font-size:12px;
|
||||||
|
color:rgba(136,136,136,1);
|
||||||
|
line-height:32px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.divbaocuntests{
|
||||||
|
width:100%;
|
||||||
|
height:32px;
|
||||||
|
font-size:12px;
|
||||||
|
color:#ffffff;
|
||||||
|
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;
|
||||||
|
border-radius:2px;
|
||||||
|
border:1px solid rgba(221,221,221,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sortzhenquetest{
|
||||||
|
width:100%;
|
||||||
|
height:33px;
|
||||||
|
font-size:14px;
|
||||||
|
color:rgba(51,51,51,1);
|
||||||
|
line-height:33px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.sortquxiao{
|
||||||
|
|
||||||
|
width:49px;
|
||||||
|
height:33px;
|
||||||
|
border-radius:2px;
|
||||||
|
border:1px solid rgba(221,221,221,1);
|
||||||
|
}
|
||||||
|
.sortquxiaotest{
|
||||||
|
width:100%;
|
||||||
|
height:33px;
|
||||||
|
font-size:14px;
|
||||||
|
color:rgba(51,51,51,1);
|
||||||
|
line-height:33px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ml45{
|
||||||
|
margin-left: 45px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.programcss{
|
||||||
|
height: 251px;
|
||||||
|
min-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titlesttingcss{
|
||||||
|
min-width: 100px;
|
||||||
|
height:32px;
|
||||||
|
line-height: 32px;
|
||||||
|
background:rgba(76,172,255,1);
|
||||||
|
border-radius:16px;
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.titlesttingcssmy{
|
||||||
|
min-width: 100px;
|
||||||
|
height:32px;
|
||||||
|
line-height: 32px;
|
||||||
|
font-size:14px;
|
||||||
|
color:rgba(51,51,51,1);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.minleng40{
|
||||||
|
min-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w60{
|
||||||
|
width: 60px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h30{
|
||||||
|
min-height: 30px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.minheight{
|
||||||
|
min-height: 500px !important;
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 362 KiB After Width: | Height: | Size: 373 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue