Merge branch 'dev_item_bank' of http://bdgit.educoder.net/Hjqreturn/educoder into dev_item_bank

dev_jupyter
cxt 6 years ago
commit d2385d0802

@ -48,20 +48,17 @@ class HacksController < ApplicationController
hack = Hack.new(hack_params)
hack.user_id = current_user.id
hack.identifier = generate_identifier Hack, 8
tag_params =
params[:tags].each do |tag|
{tag_discipline_id: tag}
end
tag_params = params[:tags].map{|tag| {tag_discipline_id: tag}}
ActiveRecord::Base.transaction do
hack.save!
# 创建测试集与代码
hack.hack_sets.create!(hack_sets_params)
# 新建知识点
hack.tag_discipline_containers.create!(tag_params) if tag_params
hack.tag_discipline_containers.create!(tag_params) if tag_params.present?
hack_codes = hack.hack_codes.new(hack_code_params)
hack_codes.modify_time = Time.now
hack_codes.save!
new_item_params = item_params.merge({container: hack, item_type: 'PROGRAM', difficulty: params[:hack][:difficult], user_id: current_user.id})
new_item_params = item_params.merge(container: hack, item_type: 'PROGRAM', difficulty: params[:hack][:difficult], user_id: current_user.id)
ItemBank.create!(new_item_params)
end
render_ok({identifier: hack.identifier})
@ -76,10 +73,7 @@ class HacksController < ApplicationController
# 知识点
tag_discipline_ids = @hack.tag_discipline_containers.pluck(:tag_discipline_id)
new_tag_ids = params[:tags].to_a - tag_discipline_ids
tag_params =
new_tag_ids.each do |tag|
{tag_discipline_id: tag}
end
tag_params = new_tag_ids.map{|tag| {tag_discipline_id: tag}}
ActiveRecord::Base.transaction do
@hack.update_attributes!(hack_params)
set_ids = @hack.hack_sets.pluck(:id)

@ -171,6 +171,7 @@ class Question extends Component {
defaultActiveKey: key,
selectallquestionsonthispages:false,
difficulty:null,
page:1
})
var data = {
discipline_id:this.state.discipline_id,

@ -202,7 +202,9 @@ class Contentpart extends Component {
: this.props.Contentdata.items.map((object, index) => {
return (
<Listjihe {...this.state} {...this.props} items={object}
<Listjihe {...this.state} {...this.props}
listjihe={index}
items={object}
key={index}
getitem_basketss={(id)=>this.props.getitem_basketss(id)}
getitem_baskets={(e)=>this.props.getitem_baskets(e)}

@ -62,7 +62,7 @@ class Listjihe extends Component {
render() {
let {page,name,nd,chakanjiexibool}=this.state;
let {defaultActiveKey,items}=this.props;
let {defaultActiveKey,items,listjihe}=this.props;
////console.log("Listjihe");
////console.log(this.props);
@ -70,19 +70,22 @@ class Listjihe extends Component {
<div className={chakanjiexibool===true?"w100s borderwds283 pd20 mb20":"w100s borderwds pd20 mb20"}>
{/*顶部*/}
<div className="w100s sortinxdirection">
<div className="w70s listjihetixingstit markdown-body" style={{wordBreak: "break-word"}} dangerouslySetInnerHTML={{__html: markdownToHTML(items&&items.name).replace(/▁/g, "▁▁▁")}}>
<div className="listjihetixingstitsy">
{
this.props.listjihe+1
}
</div>
<div className="listjihetixingstitsy">
.
</div>
<div className="w30s xaxisreverseorder">
<p className="listjihetixing">难度<span className="listjihetixings">{items.difficulty===1?"简单":items.difficulty===2?"适中":items.difficulty===3?"困难":""}</span></p>
<p className="mr30 listjihetixing">题型<span className="listjihetixings">{items.item_type==="SINGLE"?"单选题":items.item_type==="MULTIPLE"?"多选题":items.item_type==="JUDGMENT"?"判断题":items.item_type==="PROGRAM"?"编程题":""}</span></p>
<div className="ml10 w100s listjihetixingstit markdown-body" style={{wordBreak: "break-word"}} dangerouslySetInnerHTML={{__html: markdownToHTML(items&&items.name).replace(/▁/g, "▁▁▁")}}>
</div>
</div>
{/*内容*/}
<div className="w100s sortinxdirection">
<div className="w100s sortinxdirection ">
{items.item_type==="JUDGMENT"?
<p className="w100s listjihetixingstits sortinxdirection ">
{
items.item_type==="JUDGMENT"?
items === undefined ||items === null? "" : items.choices.map((object, index) => {
return (
<p className={index===1? "sortinxdirection ml10":"sortinxdirection " } >
@ -92,22 +95,35 @@ class Listjihe extends Component {
</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="sortinxdirection " >
<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 mt22">
<div className="w100s sortinxdirection">
<div className="w50s listjihetixingstit sortinxdirection">
<p className="updatetimes lh30">更新时间{items.update_time}</p>
{
@ -118,7 +134,7 @@ class Listjihe extends Component {
}
{
items.item_type==="PROGRAM"?
<p className="updatetimes lh30 ml45">编程语言null</p>
<p className="updatetimes lh30 ml45">编程语言{items.program_attr.language}</p>
:""
}
@ -172,12 +188,18 @@ class Listjihe extends Component {
<div className="w100s questiontypeheng mt23">
</div>
<p className="analysis mt22">解析</p>
<p className="mt15 testfondex"
style={{wordBreak: "break-word"}} dangerouslySetInnerHTML={{__html: markdownToHTML(items.analysis).replace(/▁/g, "▁▁▁")}}
<div className=" sortinxdirection mt15 yldxtit" >
<p className=" testfondex yldxtit"
style={{wordBreak: "break-word"}} dangerouslySetInnerHTML={{__html: markdownToHTML("答案:"+items.analysis).replace(/▁/g, "▁▁▁")}}
>
</p>
</div>
<div className=" sortinxdirection mt15 yldxtit" >
<p className=" testfondex yldxtit"
style={{wordBreak: "break-word"}} dangerouslySetInnerHTML={{__html: markdownToHTML("解析:"+items.analysis).replace(/▁/g, "▁▁▁")}}
>
</p>
</div>
</div>:""
}

@ -292,9 +292,10 @@
/*listjihe*/
.listjihetixing{
color: #888888;
font-size: 12px;
line-height: 17px;
height:17px;
font-size:12px;
color:#888888;
line-height:17px;
}
.listjihetixings{
@ -308,12 +309,24 @@
line-height: 17px;
}
.listjihetixingstitsy {
color: #333333;
font-size: 14px;
line-height: 25px;
}
.listjihetixingstits{
color: #333333;
font-size: 14px;
line-height:19px;
margin-top: 19px;
}
.listjihetixingstitssy{
color: #333333;
font-size: 14px;
line-height:19px;
}
.updatetimes{
color: #BBBBBB;
@ -655,7 +668,7 @@
}
.yldxtit{
color: #333333;
color: #333333 !important;
font-size: 14px;
}
@ -741,3 +754,6 @@
.lh35{
line-height: 35px;
}
.mt7{
margin-top: 7px;
}

Loading…
Cancel
Save