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

dev_hss
cxt 5 years ago
commit 47589e6ac2

@ -67,13 +67,20 @@ class GamesController < ApplicationController
uri = "#{shixun_tomcat}/bridge/vnc/getvnc"
params = {tpiID: @myshixun.id, :containers => "#{Base64.urlsafe_encode64(shixun_container_limit(@shixun))}"}
res = uri_post uri, params
logger.info("###############---- ")
if res && res['code'].to_i != 0
raise("实训云平台繁忙繁忙等级99")
end
# 无域名版本
#@vnc_url = "http://#{service_host}:#{res['port']}/vnc_lite.html?password=headless"
# 有域名版本
@vnc_url = "https://#{res['port']}.#{service_host}/vnc_lite.html?password=headless"
if request.subdomain == "pre-newweb"
# 无域名版本
@vnc_url = "http://#{service_host}:#{res['port']}/vnc_lite.html?password=headless"
else
# 有域名版本
@vnc_url = "https://#{res['port']}.#{service_host}/vnc_lite.html?password=headless"
end
@vnc_evaluate = @shixun.vnc_evaluate
rescue Exception => e
Rails.logger.error(e.message)
end
@ -535,13 +542,14 @@ class GamesController < ApplicationController
end
testCases = Base64.urlsafe_encode64(testSet.to_json) unless testSet.blank?
# 评测类型: 012 用于webssh的评测 3用于vnc
podType = @shixun.vnc_evaluate ? 3 : @shixun.webssh
# 注意:这个地方的参数写的时候不能换行
content_modified = params[:content_modified] # 决定文件内容是否有修改有修改如果中间层pull没有更新则轮询等待更新
br_params = {:tpiID => "#{@myshixun.id}", :tpiGitURL => "#{gitUrl}", :buildID => "#{@game.id}",
:instanceChallenge => "#{step}", :testCases => "#{testCases}", :resubmit => "#{resubmit}",
:times => params[:first].to_i, :podType => @shixun.webssh, :content_modified => content_modified,
:times => params[:first].to_i, :podType => podType, :content_modified => content_modified,
:containers => "#{Base64.urlsafe_encode64(shixun_container_limit(@shixun))}",
:persistenceName => @shixun.identifier, :tpmScript => "#{tpmScript}", :sec_key => sec_key,
:timeLimit => game_challenge.exec_time, :isPublished => (@shixun.status < 2 ? 0 : 1) }

@ -266,7 +266,8 @@ class MyshixunsController < ApplicationController
:identifier => @sec_key, :exec_time => exec_time)
uid_logger("-- game build: file update #{@sec_key}, record id is #{record.id}, time is **** #{Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")}")
end
unless @hide_code
# 隐藏代码文件 和 VNC的都不需要走版本库
unless @hide_code || @myshixun.shixun&.vnc_evaluate
# 远程版本库文件内容
last_content = GitService.file_content(repo_path: @repo_path, path: path)["content"]
content = params[:content]

@ -448,6 +448,7 @@ class ShixunsController < ApplicationController
ShixunMirrorRepository.create(:shixun_id => @shixun.id, :mirror_repository_id => mirror)
end
end
logger.info("#########shixun_params#{shixun_params}")
@shixun.update_attributes(shixun_params)
logger.info("##########shixun_info_params: #{shixun_info_params}")
logger.info("##########params[:shixun_info][:evaluate_script]: #{params[:shixun_info][:evaluate_script]}")
@ -931,7 +932,7 @@ private
raise("实训名称不能为空") if params[:shixun][:name].blank?
params.require(:shixun).permit(:name, :trainee, :webssh, :can_copy, :use_scope, :vnc, :test_set_permission,
:task_pass, :multi_webssh, :opening_time, :mirror_script_id, :code_hidden,
:hide_code, :forbid_copy)
:hide_code, :forbid_copy, :vnc_evaluate)
end
def shixun_info_params

@ -5,6 +5,9 @@ class Shixun < ApplicationRecord
# hide_code 隐藏代码窗口
# code_hidden: 隐藏代码目录
# task_pass: 跳关
# webssh 0不开启webssh1开启练习模式; 2开启评测模式
# trainee 实训的难度
# vnc: VCN实训是否用于评测
has_many :challenges, -> {order("challenges.position asc")}, dependent: :destroy
has_many :challenge_tags, through: :challenges
has_many :myshixuns, :dependent => :destroy

@ -1,6 +1,6 @@
class UserExtension < ApplicationRecord
# identity 0: 教师教授 1: 学生, 2: 专业人士, 3: 开发者
enum identity: { teacher: 0, student: 1, professional: 2, developer: 3 }
enum identity: { teacher: 0, student: 1, professional: 2, developer: 3, cnmooc: 4, unselect: -1 }
belongs_to :user, touch: true
belongs_to :school, optional: true

@ -3,6 +3,7 @@ json.(@base_date, :st, :discusses_count, :game_count, :record_onsume_time, :prev
:shixun, :myshixun, :git_url)
if @shixun.vnc
json.vnc_url @vnc_url
json.vnc_evaluate @vnc_evaluate
end
json.user do
json.partial! 'users/user', user: @user

@ -22,6 +22,7 @@ json.shixun do
json.hide_code @shixun.hide_code # 隐藏代码窗口
json.code_hidden @shixun.code_hidden # 代码目录隐藏
json.vnc @shixun.vnc
json.vnc_evaluate @shixun.vnc_evaluate
#json.exec_time @shixun.exec_time
json.webssh @shixun.webssh
json.multi_webssh @shixun.multi_webssh

@ -0,0 +1,5 @@
class AddVncEvaluateForShixuns < ActiveRecord::Migration[5.2]
def change
add_column :shixuns, :vnc_evaluate, :boolean, default: false
end
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 180 KiB

@ -63,7 +63,7 @@ class TabRightComponents extends Component{
})
}
}else {
this.props.slowDownload(url)
this.props.slowDownload(url);
// this.props.showNotification(`正在下载中`);
// window.open("/api"+url, '_blank');
}

@ -87,7 +87,7 @@ class Completetaskpage extends Component {
this.setState({
banksMenu:menuData
})
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,response.data);
}catch (e) {
}

@ -82,7 +82,7 @@ class CompletetopicdePage extends Component {
this.setState({
banksMenu:menuData
})
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,response.data);
}catch (e) {
}

@ -92,7 +92,7 @@ class GroupjobbankPage extends Component {
this.setState({
banksMenu:menuData
})
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,response.data);
}catch (e) {
}

@ -302,7 +302,7 @@ class PollNewQuestbank extends Component {
{content:'编辑'}
]
}
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,result.data);
}catch (e) {
}

@ -93,7 +93,7 @@ class Generaljobbankdetails extends Component {
this.setState({
banksMenu:menuData
})
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,response.data);
}catch (e) {
}

@ -67,7 +67,7 @@ class Listofworksstudentone extends Component {
pages: 1,
limit: 20,
loadingstate: true,
order: "update_time",
order: "",
search: null,
day: 0,
hour: 0,
@ -131,30 +131,30 @@ class Listofworksstudentone extends Component {
{record.name === undefined ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>--</span>
:
record.name === "" ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>--</span>
:
record.name === null ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>--</span>
:
record.name === "--" ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>--</span>
:
<a className="maxnamewidth100" title={record.name} style={{
"color": '#07111B',
"text-align": "center"
textAlign: "center"
}}>{record.name}</a>
}
@ -167,25 +167,24 @@ class Listofworksstudentone extends Component {
key: 'stduynumber',
align: "center",
className:'font-14 maxnamewidth110',
width:'110px',
render: (text, record) => (
<span className="maxnamewidth110">
{record.stduynumber === undefined ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>--
</span>
: record.stduynumber === null ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>--
</span>
: record.stduynumber === "" ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>--
</span>
:
@ -194,7 +193,7 @@ class Listofworksstudentone extends Component {
className="maxnamewidth110"
style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>{
record.stduynumber
}
@ -215,7 +214,7 @@ class Listofworksstudentone extends Component {
<span>
<span className="ysltable" style={{
"color": '#9A9A9A',
"text-align": "center"
textAlign: "center"
}}>{record.classroom === undefined ? "--" : record.classroom === "" ? "--" : record.classroom === null ? "--" : record.classroom}</span>
</span>
),
@ -230,10 +229,10 @@ class Listofworksstudentone extends Component {
<span>
<span style={record.submitstate === "延时提交" ? {
"color": '#DD1717',
"text-align": "center"
} : record.submitstate === "按时提交" ? {"color": '#29BD8B', "text-align": "center"} : {
textAlign: "center"
} : record.submitstate === "按时提交" ? {"color": '#29BD8B', textAlign: "center"} : {
"color": '#747A7F',
"text-align": "center"
textAlign: "center"
}}>{record.submitstate === undefined ? "--" : record.submitstate === "" ? "--" : record.submitstate === null ? "--" : record.submitstate}</span>
</span>
@ -248,29 +247,40 @@ class Listofworksstudentone extends Component {
render: (text, record) => (
<span style={
{
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
}
}>{record.cost_time === null ? "--":record.cost_time === undefined ?"--":record.cost_time }
</span>
}>
{record.cost_time === null? "--":record.cost_time === undefined?"--":
<a style={
{
color: '#747A7F',
textAlign: "center"
}
}
title={"学员在EduCoder做实训花费的时间"}
>{record.cost_time === null ? "--":record.cost_time === undefined ?"--":record.cost_time}
</a>
}
</span>
)
},
{
title: '更新时间',
dataIndex: 'updatetime',
key: 'updatetime',
align: "center",
className:'font-14',
render: (text, record) => (
<span>
<span style={{
"color": '#9A9A9A',
"text-align": "center"
}}>{record.updatetime === undefined ? "--" : record.updatetime === "" ? "--" : record.updatetime}</span>
</span>
),
},
// {
// title: '更新时间',
// dataIndex: 'updatetime',
// key: 'updatetime',
// align: "center",
// className:'font-14',
// render: (text, record) => (
// <span>
// <span style={{
// "color": '#9A9A9A',
// "text-align": "center"
// }}>{record.updatetime === undefined ? "--" : record.updatetime === "" ? "--" : record.updatetime}</span>
// </span>
// ),
// },
{
title: '完成情况',
dataIndex: 'completion',
@ -279,7 +289,7 @@ class Listofworksstudentone extends Component {
className:'font-14',
render: (text, record) => (
<span>
<span style={{"color": '#07111B', "text-align": "center"}}>{record.completion+"/"+this.state.challenges_count}</span>
<span style={{color: '#07111B',textAlign: "center"}}>{record.completion+"/"+this.state.challenges_count}</span>
</span>
),
},
@ -292,14 +302,14 @@ class Listofworksstudentone extends Component {
render: (text, record) => (
<span>
<span style={parseInt(record.levelscore) <= 60 ? {
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
} : parseInt(record.levelscore) < 90 ? {
"color": '#FF6800',
"text-align": "center"
} : parseInt(record.levelscore) >= 90 ? {"color": '#DD1717', "text-align": "center"} : {
"color": '#747A7F',
"text-align": "center"
color: '#FF6800',
textAlign: "center"
} : parseInt(record.levelscore) >= 90 ? {color: '#DD1717', textAlign: "center"} : {
color: '#747A7F',
textAlign: "center"
}}>{record.levelscore}</span>
</span>
)
@ -320,15 +330,15 @@ class Listofworksstudentone extends Component {
)
:
<span style={parseInt(record.efficiencyscore) <= 60 ? {
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
} : parseInt(record.efficiencyscore) < 90 ? {
"color": '#FF6800',
"text-align": "center"
color: '#FF6800',
textAlign: "center"
} : parseInt(record.efficiencyscore) >= 90 ? {
"color": '#DD1717',
"text-align": "center"
} : {"color": '#747A7F', "text-align": "center"}}>{record.efficiencyscore}</span>
color: '#DD1717',
textAlign: "center"
} : {color: '#747A7F', textAlign: "center"}}>{record.efficiencyscore}</span>
}
</span>
@ -344,15 +354,15 @@ class Listofworksstudentone extends Component {
<span>
{
record.levelscore && record.levelscore === "--"?
<span style={{"color": '#9A9A9A', "text-align": "center"}}>{record.levelscore}</span>
<span style={{color: '#9A9A9A', textAlign: "center"}}>{record.levelscore}</span>
:
<span style={parseInt(record.levelscore) >=90 ? {
"color": '#DD1717',
"text-align": "center"
color: '#DD1717',
textAlign: "center"
} : parseInt(record.levelscore) <= 60?{
"color": '#FF6800',
"text-align": "center",
}: {"color": '#747A7F', "text-align": "center"}}>{record.levelscore}</span>
color: '#FF6800',
textAlign: "center",
}: {color: '#747A7F', textAlign: "center"}}>{record.levelscore}</span>
}
</span>
@ -379,7 +389,7 @@ class Listofworksstudentone extends Component {
},
],
orders: "update_time",
orders: "",
b_order:"desc",
allow_late:false,
checkedValuesine: undefined,
@ -395,8 +405,8 @@ class Listofworksstudentone extends Component {
course_group: null,
publish_immediately: undefined,
end_immediately: undefined,
mystyle: {"display": "block", "color": '#07111B', "text-align": "center"},
mystyles: {"display": "none", "color": '#07111B', "text-align": "center"},
mystyle: {"display": "block", "color": '#07111B', textAlign: "center"},
mystyles: {"display": "none", "color": '#07111B', textAlign: "center"},
mystyle1: {"display": "block"},
mystyles1: {"display": "none"},
unlimited: 0,
@ -413,7 +423,7 @@ class Listofworksstudentone extends Component {
align: 'center',
className:'font-14',
render: (text, record) => (
<span style={{"color": '#07111B', "text-align": "center"}}>{record.number}
<span style={{"color": '#07111B', textAlign: "center"}}>{record.number}
</span>
)
},
@ -425,7 +435,7 @@ class Listofworksstudentone extends Component {
className:'font-14 maxnamewidth100',
width:'100px',
render: (text, record) => (
<a className="maxnamewidth100" title={record.name} style={{"color": '#07111B', "text-align": "center"}}>{record.name}</a>
<a className="maxnamewidth100" title={record.name} style={{"color": '#07111B', textAlign: "center"}}>{record.name}</a>
)
},
{
@ -434,25 +444,24 @@ class Listofworksstudentone extends Component {
key: 'stduynumber',
align: "center",
className:'font-14 maxnamewidth110',
width:'110px',
render: (text, record) => (
<span className="maxnamewidth110">
{record.stduynumber === undefined ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
color: '#9A9A9A',
textAlign: "center"
}}>--
</span>
: record.stduynumber === null ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
color: '#9A9A9A',
textAlign: "center"
}}>--
</span>
: record.stduynumber === "" ?
<span style={{
"color": '#9A9A9A',
"text-align": "center"
color: '#9A9A9A',
textAlign: "center"
}}>--
</span>
:
@ -460,8 +469,8 @@ class Listofworksstudentone extends Component {
title={record.stduynumber}
className="maxnamewidth110"
style={{
"color": '#9A9A9A',
"text-align": "center"
color: '#9A9A9A',
textAlign: "center"
}}>{
record.stduynumber
}
@ -480,7 +489,7 @@ class Listofworksstudentone extends Component {
className:'font-14',
render: (text, record) => (
<span>
{record.classroom === undefined ?<span className="ysltable" style={{"color": '#07111B', "text-align": "center"}}> --</span> : record.classroom === "" ? <span className="ysltable" style={{"color": '#07111B', "text-align": "center"}}>--</span>: record.classroom === null ? <span className="ysltable" style={{"color": '#07111B', "text-align": "center"}}>--</span> : <span className="ysltable" style={{"color": '#07111B', "text-align": "center"}}>{record.classroom}</span>}
{record.classroom === undefined ?<span className="ysltable" style={{"color": '#07111B', textAlign: "center"}}> --</span> : record.classroom === "" ? <span className="ysltable" style={{"color": '#07111B',textAlign: "center"}}>--</span>: record.classroom === null ? <span className="ysltable" style={{"color": '#07111B', textAlign: "center"}}>--</span> : <span className="ysltable" style={{"color": '#07111B',textAlign: "center"}}>{record.classroom}</span>}
</span>
)
},
@ -492,11 +501,11 @@ class Listofworksstudentone extends Component {
className:'font-14',
render: (text, record) => (
<span style={record.submitstate === "延时提交" ? {
"color": '#DD1717',
"text-align": "center"
} : record.submitstate === "按时提交" ? {"color": '#29BD8B', "text-align": "center"} : {
"color": '#747A7F',
"text-align": "center"
color: '#DD1717',
textAlign: "center"
} : record.submitstate === "按时提交" ? {color: '#29BD8B', textAlign: "center"} : {
color: '#747A7F',
textAlign: "center"
}}>{record.submitstate}
</span>
)
@ -511,24 +520,44 @@ class Listofworksstudentone extends Component {
render: (text, record) => (
<span style={
{
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
}
}>{record.cost_time === null ? "--":record.cost_time === undefined ?"--":record.cost_time }
</span>
}>
{record.cost_time === null? "--":record.cost_time === undefined?"--":
<a style={
{
color: '#747A7F',
textAlign: "center"
}
}
title={"学员在EduCoder做实训花费的时间"}
>{record.cost_time === null ? "--":record.cost_time === undefined ?"--":record.cost_time}
</a>
}
</span>
// <a style={
// {
// "color": '#747A7F',
// "text-align": "center"
// }
// }
// title={record.cost_time === null ? "--":record.cost_time === undefined ?"--":record.cost_time}
// >{record.cost_time === null ? "--":record.cost_time === undefined ?"--":record.cost_time }
// </a>
)
},
{
title: '更新时间',
dataIndex: 'updatetime',
key: 'updatetime',
align: 'center',
className:'font-14',
render: (text, record) => (
<span style={{"color": '#9A9A9A', "text-align": "center"}}>{record.updatetime}</span>
),
},
// {
// title: '更新时间',
// dataIndex: 'updatetime',
// key: 'updatetime',
// align: 'center',
// className:'font-14',
// render: (text, record) => (
// <span style={{"color": '#9A9A9A', "text-align": "center"}}>{record.updatetime}</span>
// ),
// },
{
title: '完成情况',
dataIndex: 'completion',
@ -728,7 +757,6 @@ class Listofworksstudentone extends Component {
key: 'stduynumber',
align: "center",
className:'font-14 maxnamewidth110',
width:'110px',
render: (text, record) => (
<span className="maxnamewidth110">
{record.stduynumber === undefined ?
@ -754,8 +782,8 @@ class Listofworksstudentone extends Component {
title={record.stduynumber}
className="maxnamewidth110"
style={{
"color": '#9A9A9A',
"text-align": "center"
color: '#9A9A9A',
textAlign: "center"
}}>{
record.stduynumber
}
@ -774,7 +802,7 @@ class Listofworksstudentone extends Component {
className:'font-14',
render: (text, record) => (
<span>
{record.classroom === undefined ?<span className="ysltable" style={{"color": '#07111B', "text-align": "center"}}> --</span> : record.classroom === "" ? <span className="ysltable" style={{"color": '#07111B', "text-align": "center"}}>--</span>: record.classroom === null ? <span className="ysltable" style={{"color": '#07111B', "text-align": "center"}}>--</span> : <span className="ysltable" style={{"color": '#07111B', "text-align": "center"}}>{record.classroom}</span>}
{record.classroom === undefined ?<span className="ysltable" style={{color: '#07111B',textAlign: "center"}}> --</span> : record.classroom === "" ? <span className="ysltable" style={{color: '#07111B', textAlign: "center"}}>--</span>: record.classroom === null ? <span className="ysltable" style={{color: '#07111B', textAlign: "center"}}>--</span> : <span className="ysltable" style={{color: '#07111B', textAlign: "center"}}>{record.classroom}</span>}
</span>
)
},
@ -786,26 +814,26 @@ class Listofworksstudentone extends Component {
className:'font-14',
render: (text, record) => (
<span style={record.submitstate === "延时提交" ? {
"color": '#DD1717',
"text-align": "center"
} : record.submitstate === "按时提交" ? {"color": '#29BD8B', "text-align": "center"} : {
"color": '#747A7F',
"text-align": "center"
color: '#DD1717',
textAlign: "center"
} : record.submitstate === "按时提交" ? {color: '#29BD8B', textAlign: "center"} : {
color: '#747A7F',
textAlign: "center"
}}>{record.submitstate}
</span>
)
},
{
title: '更新时间',
dataIndex: 'updatetime',
key: 'updatetime',
align: 'center',
className:'font-14',
render: (text, record) => (
<span style={{"color": '#9A9A9A', "text-align": "center"}}>{record.updatetime}</span>
),
},
// {
// title: '更新时间',
// dataIndex: 'updatetime',
// key: 'updatetime',
// align: 'center',
// className:'font-14',
// render: (text, record) => (
// <span style={{"color": '#9A9A9A', "text-align": "center"}}>{record.updatetime}</span>
// ),
// },
{
title: '实战耗时',
dataIndex: 'cost_time',
@ -815,13 +843,23 @@ class Listofworksstudentone extends Component {
render: (text, record) => (
<span style={
{
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
}
}>{record.cost_time === null ? "--":record.cost_time === undefined ?"--":record.cost_time }
</span>
}>
{record.cost_time === null ? "--":record.cost_time === undefined ?"--":
<a style={
{
color: '#747A7F',
textAlign: "center"
}
}
title={"学员在EduCoder做实训花费的时间"}
>{record.cost_time === null ? "--":record.cost_time === undefined ?"--":record.cost_time}
</a>
}
</span>
)
},
{
title: '完成情况',
@ -835,7 +873,7 @@ class Listofworksstudentone extends Component {
<Tooltip placement="bottom" title={<div>
<div>已通过{record.completion}{this.state.challenges_count}</div>
</div>}>
<span style={{"color": '#07111B', "text-align": "center"}}>{record.completion+"/"+this.state.challenges_count} </span>
<span style={{color: '#07111B',textAlign: "center"}}>{record.completion+"/"+this.state.challenges_count} </span>
</Tooltip>
</span>
@ -850,14 +888,14 @@ class Listofworksstudentone extends Component {
render: (text, record) => (
<span>
<span style={parseInt(record.levelscore) <= 60 ? {
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
} : parseInt(record.levelscore) < 90 ? {
"color": '#FF6800',
"text-align": "center"
} : parseInt(record.levelscore) >= 90 ? {"color": '#DD1717', "text-align": "center"} : {
"color": '#747A7F',
"text-align": "center"
color: '#FF6800',
textAlign: "center"
} : parseInt(record.levelscore) >= 90 ? {color: '#DD1717', textAlign: "center"} : {
color: '#747A7F',
textAlign: "center"
}}>{record.levelscore}</span>
</span>
)
@ -896,15 +934,15 @@ class Listofworksstudentone extends Component {
)
:
<span style={parseInt(record.efficiencyscore) <= 60 ? {
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
} : parseInt(record.efficiencyscore) < 90 ? {
"color": '#FF6800',
"text-align": "center"
color: '#FF6800',
textAlign: "center"
} : parseInt(record.efficiencyscore) >= 90 ? {
"color": '#DD1717',
"text-align": "center"
} : {"color": '#747A7F', "text-align": "center"}}>{record.efficiencyscore}</span>
color: '#DD1717',
textAlign: "center"
} : {color: '#747A7F',textAlign: "center"}}>{record.efficiencyscore}</span>
}
</span>
@ -928,19 +966,19 @@ class Listofworksstudentone extends Component {
record.finalscore&&record.finalscore==="--"?
<span style=
{{
"color": '#9A9A9A',
"text-align": "center"
color: '#9A9A9A',
textAlign: "center"
}}>{record.finalscore}</span>
:
<span style={parseInt(record.finalscore) <= 60 ? {
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
} : parseInt(record.finalscore) < 90 ? {
"color": '#FF6800',
"text-align": "center"
} : parseInt(record.finalscore) >= 90 ? {"color": '#DD1717', "text-align": "center"} : {
"color": '#747A7F',
"text-align": "center"
color: '#FF6800',
textAlign: "center"
} : parseInt(record.finalscore) >= 90 ? {color: '#DD1717', textAlign: "center"} : {
color: '#747A7F',
textAlign: "center"
}}>{record.finalscore}</span>
}
</Tooltip>
@ -956,19 +994,19 @@ class Listofworksstudentone extends Component {
record.finalscore&&record.finalscore==="--"?
<span style=
{{
"color": '#9A9A9A',
"text-align": "center"
color: '#9A9A9A',
textAlign: "center"
}}>{record.finalscore}</span>
:
<span style={parseInt(record.finalscore) <= 60 ? {
"color": '#747A7F',
"text-align": "center"
color: '#747A7F',
textAlign: "center"
} : parseInt(record.finalscore) < 90 ? {
"color": '#FF6800',
"text-align": "center"
} : parseInt(record.finalscore) >= 90 ? {"color": '#DD1717', "text-align": "center"} : {
"color": '#747A7F',
"text-align": "center"
color: '#FF6800',
textAlign: "center"
} : parseInt(record.finalscore) >= 90 ? {color: '#DD1717', textAlign: "center"} : {
color: '#747A7F',
textAlign: "center"
}}>{record.finalscore}</span>
}
</Tooltip>
@ -1656,9 +1694,9 @@ class Listofworksstudentone extends Component {
var homeworkid = this.props.match.params.homeworkid;
let urll = `/homework_commons/${homeworkid}/works_list.json?`;
var order = "asc";
if (ordervlue === "update_time") {
order = "desc";
}
// if (ordervlue === "update_time") {
// order = "desc";
// }
var checkedValuesines = checkedValuesine;
var checkedValuesineinfos = checkedValuesineinfo;
var searchtexts = searchtext
@ -2065,15 +2103,15 @@ class Listofworksstudentone extends Component {
}
//排序
funordert = (e) => {
if (e === "update_time") {
// 时间
// 时间排序是从小到大
this.setState({
orders: "update_time",
loadingstate: true,
})
this.Startsortingt("update_time", this.state.course_groupyslstwo, this.state.checkedValuesineinfo, this.state.searchtext, this.state.page, this.state.limit);
}
// if (e === "update_time") {
// // 时间
// // 时间排序是从小到大
// this.setState({
// orders: "update_time",
// loadingstate: true,
// })
// this.Startsortingt("update_time", this.state.course_groupyslstwo, this.state.checkedValuesineinfo, this.state.searchtext, this.state.page, this.state.limit);
// }
if (e === "work_score") {
// 成绩
@ -2473,8 +2511,9 @@ class Listofworksstudentone extends Component {
})
}
}else {
this.props.showNotification(`正在下载中`);
window.open("/api"+url, '_blank');
// this.props.showNotification(`正在下载中`);
// window.open("/api"+url, '_blank');
this.props.slowDownload(url);
}
}).catch((error) => {
console.log(error)
@ -2762,10 +2801,10 @@ class Listofworksstudentone extends Component {
<ul>
<li className="edu-position edu-position-hidebox">
<a className="font-12">
{orders === "update_time" ? "时间" : orders === "work_score" ? "成绩" : orders === "student_id" ? "学号" : ""}排序</a>
{orders === "work_score" ? "成绩" : orders === "student_id" ? "学号" : ""}排序</a>
<i className="iconfont icon-xiajiantou ml5 font-12 "></i>
<ul className="edu-position-hide undis mt10">
<li> <a onClick={(e) => this.funordert("update_time")} data-remote="true" className=" font-12" style={{textAlign: "center"}}>更新时间</a></li>
{/*<li> <a onClick={(e) => this.funordert("update_time")} data-remote="true" className=" font-12" style={{textAlign: "center"}}>更新时间</a></li>*/}
<li> <a onClick={(e) => this.funordert("work_score")} data-remote="true" className=" font-12" style={{textAlign: "center"}}>最终成绩</a></li>
<li> <a onClick={(e) => this.funordert("student_id")} data-remote="true" className=" font-12" style={{textAlign: "center"}}>学生学号</a></li>
</ul>

@ -38,14 +38,14 @@
.TopicDetailTable .bottomBody li:last-child{border-bottom: none;}
.maxnamewidth100{
max-width: 100px;
max-width: 145px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
cursor: default;
}
.maxnamewidth110{
max-width: 110px;
max-width: 145px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;

@ -100,6 +100,9 @@ class MainContent extends Component {
vnc_url={vnc_url}
{...this.props}
></VNCContainer>
<div id="actionView" className="-layout-h -center -bg-grey-90 -grey-20 -bg-darkblack" style={{height:'48px'}}>
<ActionView onRunCodeTest={onRunCodeTest} {...this.props}></ActionView>
</div>
</CodeRepositoryViewContainer>
:
<React.Fragment>

@ -150,7 +150,7 @@ class ActionView extends Component {
<div id="code_test" className="act_btn">
{(!shixun.vnc || shixun.vnc_evaluate) && <div id="code_test" className="act_btn">
{
st === 1 && game.status === 2 ?
<Tooltip title={ "已通关的选择题任务无法再次测评" }>
@ -174,7 +174,7 @@ class ActionView extends Component {
<i className="fa fa-play-circle font-16"></i>
测评
</a>}
</div>
</div>}
</div>
);
/*

@ -355,6 +355,7 @@ export default class TPMsettings extends Component {
code_hidden: response.data.shixun.code_hidden,
forbid_copy: response.data.shixun.forbid_copy,
vnc: response.data.shixun.vnc,
vnc_evaluate: response.data.shixun.vnc_evaluate,
name: response.data.shixun.name,
scope_partment: response.data.shixun.scope_partment,
description: response.data.shixun.description,
@ -535,6 +536,12 @@ export default class TPMsettings extends Component {
forbid_copy: sum,
});
}
shixun_vnc_evaluate=(e) => {
this.setState({
vnc_evaluate: e.target.checked,
});
}
shixun_vnc=(e)=>{
// let sum = ""
@ -545,6 +552,7 @@ export default class TPMsettings extends Component {
// }
this.setState({
vnc: e.target.checked,
vnc_evaluate: false,
});
}
@ -772,7 +780,7 @@ export default class TPMsettings extends Component {
}
let {
name, choice_main_type, choice_small_type, choice_standard_scripts, scope_partment, choice_standard_scriptssum,
name, choice_main_type, choice_small_type, choice_standard_scripts, scope_partment, choice_standard_scriptssum, vnc_evaluate,
evaluate_script, webssh, use_scope, trainee, can_copy, task_pass, test_set_permission, hide_code, code_hidden, forbid_copy, vnc,multi_webssh,
opening_time,shixunmemoMDvalue,shixun_service_configlist
} = this.state;
@ -883,6 +891,7 @@ export default class TPMsettings extends Component {
use_scope: use_scope,
can_copy: can_copy,
vnc: vnc===null?undefined:vnc,
vnc_evaluate: vnc_evaluate===null?undefined:vnc_evaluate,
test_set_permission: test_set_permission,
code_hidden: code_hidden,
trainee: trainee,
@ -1464,6 +1473,7 @@ export default class TPMsettings extends Component {
forbid_copy,
code_hidden,
vnc,
vnc_evaluate,
scopetype,
scope_partment,
departmentslist,
@ -2222,11 +2232,20 @@ export default class TPMsettings extends Component {
{this.props.identity<3?<div className="clearfix mt20 ml30">
<span className="color-grey-6 mt5 fl" style={{minWidth: '95px'}}>VNC图形化:</span>
<span className="fl mt5">
<Checkbox checked={vnc === undefined ? false : vnc} onChange={this.shixun_vnc}></Checkbox>
<label style={{top:'6px'}} className="color-grey-9 ml10" >勾选则给学员的实践任务提供Ubuntu系统图形化实践窗口否则不提供</label>
</span>
<span className="fl mt5">
<Checkbox checked={vnc === undefined ? false : vnc} onChange={this.shixun_vnc}></Checkbox>
<label style={{top:'6px'}} className="color-grey-9 ml10" >勾选则给学员的实践任务提供Ubuntu系统图形化实践窗口否则不提供</label>
</span>
</div>:""}
{this.props.identity<3 && vnc ?<div className="clearfix mt20 ml30">
<span className="color-grey-6 mt5 fl" style={{minWidth: '95px'}}>VNC图形化评测:</span>
<span className="fl mt5 ml5">
<Checkbox checked={vnc_evaluate === undefined ? false : vnc_evaluate} onChange={this.shixun_vnc_evaluate}></Checkbox>
<label style={{top:'6px'}} className="color-grey-9 ml10" >勾选则在VNC图形化实训中给学员开启评测</label>
</span>
</div>:""}
</div>

@ -85,7 +85,10 @@ class BanksIndex extends Component{
}
initPublic = (crumbData) =>{
initPublic = (crumbData,data) =>{
if(data && data.status && data.status == -2){
this.props.history.push(`/topicbank/publicly`);
}
this.setState({
crumbData
})

@ -31,11 +31,11 @@ class BanksTabIndex extends Component{
}
}
initPublic = (crumbData,menuData) =>{
initPublic = (crumbData,menuData,data) =>{
this.setState({
banksMenu:menuData
})
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,data);
}
render(){

@ -36,7 +36,7 @@ class ExerciseBanksDetail extends Component{
type:this.props.match.params.type,
authorize:result && result.data && result.data.authorize,
}
this.props.initPublic(crumbData,menuData);
this.props.initPublic(crumbData,menuData,result.data);
}
render(){

@ -29,7 +29,7 @@ class ExerciseBanksEdit extends Component {
{content:'编辑'}
]
}
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,responseData.data);
}
render(){

@ -29,7 +29,7 @@ class GtaskBanksEdit extends Component {
{content:'编辑'}
]
}
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,result.data);
result.data.isEdit = true;
this.setState({ data:result.data})
this.newWorkFormRef.initValue(result.data);

@ -12,7 +12,6 @@ class GtopicBanksEdit extends Component{
}
componentDidMount = () =>{
let bankId = this.props.match.params.bankId;
this.initData(bankId);
}
@ -28,7 +27,7 @@ class GtopicBanksEdit extends Component{
{content:'编辑'}
]
}
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,result.data);
this.GraduateTopicNewFromRef.initValue(result);
}

@ -30,7 +30,7 @@ class HomeworkBanksEdit extends Component {
{content:'编辑'}
]
}
this.props.initPublic(crumbData);
this.props.initPublic(crumbData,result.data);
result.data.isEdit = true;
result.data.ref_attachments = result.data.reference_attachments
// this.setState({ isGroup: result.data.min_num || result.data.max_num })

@ -47,7 +47,7 @@ class PollBanksContent extends Component{
type:this.props.match.params.type,
authorize:result && result.data && result.data.authorize,
}
this.props.initPublic(crumbData,menuData);
this.props.initPublic(crumbData,menuData,result.data);
this.setState({
pollDetail
})

Loading…
Cancel
Save