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

competitions
cxt 6 years ago
commit 40e0ad626a

@ -83,6 +83,7 @@ class AttachmentsController < ApplicationController
@file.destroy!
delete_file(@file_path)
normal_status("删除成功")
rescue Exception => e
uid_logger_error(e.message)
tip_exception(e.message)

@ -10,6 +10,10 @@ module LaboratoryHelper
@_current_laboratory ||= (Laboratory.find_by_subdomain(request.subdomain) || Laboratory.find(1))
end
def default_laboratory
@_default_laboratory ||= Laboratory.find(1)
end
def default_setting
@_default_setting ||= LaboratorySetting.find_by(laboratory_id: 1)
end

@ -3,6 +3,8 @@ class HomeController < ApplicationController
def index
# banner图
images = current_laboratory.portal_images.only_online.order(position: :asc)
images = default_laboratory.portal_images.only_online.order(position: :asc) if images.blank? # 未设置时使用EduCoder的轮播图
@images_url = []
images.each do |image|
@images_url << {path: image.link, image_url: Util::FileManage.source_disk_file_url(image)}

@ -1,5 +1,6 @@
class Weapps::CodeSessionsController < Weapps::BaseController
def create
logged = false
return render_error('code不能为空') if params[:code].blank?
result = Wechat::Weapp.jscode2session(params[:code])
@ -12,6 +13,7 @@ class Weapps::CodeSessionsController < Weapps::BaseController
if open_user.present? && open_user.user
set_session_unionid(result['unionid'])
successful_authentication(open_user.user)
logged = true
else
# 新用户
user_info = Wechat::Weapp.decrypt(result['session_key'], params[:encrypted_data], params[:iv])
@ -19,6 +21,6 @@ class Weapps::CodeSessionsController < Weapps::BaseController
set_session_unionid(user_info['unionId'])
end
render_ok(openid: result['openid'])
render_ok(openid: result['openid'], logged: logged)
end
end

@ -39,6 +39,11 @@ module ExercisesHelper
else
ques_score = 0.0
end
elsif q_type == Exercise::COMPLETION
ques_score = answers_content.select{|answer| answer.score >= 0.0}.pluck(:score).sum
if ques_score.to_s.split(".").last == "9"
ques_score = ques_score.to_f + 0.1
end
else
ques_score = answers_content.select{|answer| answer.score >= 0.0}.pluck(:score).sum
end
@ -800,8 +805,16 @@ module ExercisesHelper
user_score_pre = exercise_answers.select{|answer| answer.score >= 0.0}
if ques_type == 4 #主观题时且没有大于0的分数时为空
user_score = user_score_pre.present? ? user_score_pre.pluck(:score).sum : nil
elsif ques_type == 5 || ques_type == 3
elsif ques_type == 5
user_score = user_score_pre.present? ? user_score_pre.pluck(:score).sum : 0.0
elsif ques_type == 3 #填空题时需小心出现9.9分
user_score = user_score_pre.present? ? user_score_pre.pluck(:score).sum : 0.0
if user_score > 0.0
if user_score.to_s.split(".").last == "9"
user_score = user_score.to_f + 0.1
end
end
# user_score = user_score_pre.present? ? user_score_pre.pluck(:score).sum : 0.0
else #选择题,判断题根据第一个记录查分
user_score = user_score_pre.present? ? user_score_pre.first.score : 0.0

@ -1 +0,0 @@
json.partial! "commons/success"

File diff suppressed because one or more lines are too long

@ -25080,11 +25080,16 @@ input.form-control {
}
/* line 51, app/assets/stylesheets/admins/common.scss */
.admin-body-container .action-container .action {
.admin-body-container .action-container > .action {
padding: 0 3px;
}
/* line 57, app/assets/stylesheets/admins/common.scss */
/* line 56, app/assets/stylesheets/admins/common.scss */
.admin-body-container .action-container .more-action-dropdown .dropdown-item {
font-size: 14px;
}
/* line 63, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container {
margin-top: 20px;
display: -webkit-box;
@ -25098,68 +25103,68 @@ input.form-control {
align-items: center;
}
/* line 64, app/assets/stylesheets/admins/common.scss */
/* line 70, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container .paginate-total {
margin-bottom: 10px;
color: darkgrey;
}
/* line 69, app/assets/stylesheets/admins/common.scss */
/* line 75, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container .pagination {
margin-bottom: 0px;
}
/* line 75, app/assets/stylesheets/admins/common.scss */
/* line 81, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container {
display: -webkit-box;
display: flex;
margin-bottom: 20px;
}
/* line 79, app/assets/stylesheets/admins/common.scss */
/* line 85, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form {
-webkit-box-flex: 1;
flex: 1;
}
/* line 82, app/assets/stylesheets/admins/common.scss */
/* line 88, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form * {
font-size: 14px;
}
/* line 84, app/assets/stylesheets/admins/common.scss */
/* line 90, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form select, .admin-body-container .search-form-container .search-form input {
margin-right: 10px;
font-size: 14px;
}
/* line 91, app/assets/stylesheets/admins/common.scss */
/* line 97, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error {
color: grey;
min-height: 300px;
}
/* line 95, app/assets/stylesheets/admins/common.scss */
/* line 101, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error-code {
font-size: 80px;
}
/* line 99, app/assets/stylesheets/admins/common.scss */
/* line 105, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error-text {
font-size: 24px;
}
/* line 105, app/assets/stylesheets/admins/common.scss */
/* line 111, app/assets/stylesheets/admins/common.scss */
.admin-body-container .nav-tabs .nav-link {
padding: 0.5rem 2rem;
}
/* line 110, app/assets/stylesheets/admins/common.scss */
/* line 116, app/assets/stylesheets/admins/common.scss */
.admin-body-container .CodeMirror {
border: 1px solid #ced4da;
}
/* line 114, app/assets/stylesheets/admins/common.scss */
/* line 120, app/assets/stylesheets/admins/common.scss */
.admin-body-container .batch-action-container {
margin-bottom: -15px;
padding: 10px 20px 0;

@ -133848,6 +133848,8 @@ $(document).on('turbolinks:load', function(){
});
$(document).on('turbolinks:load', function() {
if ($('body.admins-carousels-index-page').length > 0) {
var laboratoryId = $('#carousels-container').data('laboratoryId');
// ------------ 保存链接 -----------
$('.carousels-card').on('click', '.save-data-btn', function(){
var $link = $(this);
@ -133861,7 +133863,7 @@ $(document).on('turbolinks:load', function() {
$link.attr('disabled', true);
$.ajax({
url: '/admins/carousels/' + id,
url: '/admins/laboratories/' + laboratoryId + '/carousels/' + id,
method: 'PATCH',
dataType: 'json',
data: { link: link, name: name },
@ -133882,7 +133884,7 @@ $(document).on('turbolinks:load', function() {
$checkbox.attr('disabled', true);
$.ajax({
url: '/admins/carousels/' + id,
url: '/admins/laboratories/' + laboratoryId + '/carousels/' + id,
method: 'PATCH',
dataType: 'json',
data: { status: checked },
@ -133908,7 +133910,7 @@ $(document).on('turbolinks:load', function() {
var insertId = $(sibling).data('id') || '';
$.ajax({
url: '/admins/carousels/drag',
url: '/admins/laboratories/' + laboratoryId + '/carousels/drag',
method: 'POST',
dataType: 'json',
data: { move_id: moveId, after_id: insertId },

@ -25080,11 +25080,16 @@ input.form-control {
}
/* line 51, app/assets/stylesheets/admins/common.scss */
.admin-body-container .action-container .action {
.admin-body-container .action-container > .action {
padding: 0 3px;
}
/* line 57, app/assets/stylesheets/admins/common.scss */
/* line 56, app/assets/stylesheets/admins/common.scss */
.admin-body-container .action-container .more-action-dropdown .dropdown-item {
font-size: 14px;
}
/* line 63, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container {
margin-top: 20px;
display: -webkit-box;
@ -25098,68 +25103,68 @@ input.form-control {
align-items: center;
}
/* line 64, app/assets/stylesheets/admins/common.scss */
/* line 70, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container .paginate-total {
margin-bottom: 10px;
color: darkgrey;
}
/* line 69, app/assets/stylesheets/admins/common.scss */
/* line 75, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container .pagination {
margin-bottom: 0px;
}
/* line 75, app/assets/stylesheets/admins/common.scss */
/* line 81, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container {
display: -webkit-box;
display: flex;
margin-bottom: 20px;
}
/* line 79, app/assets/stylesheets/admins/common.scss */
/* line 85, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form {
-webkit-box-flex: 1;
flex: 1;
}
/* line 82, app/assets/stylesheets/admins/common.scss */
/* line 88, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form * {
font-size: 14px;
}
/* line 84, app/assets/stylesheets/admins/common.scss */
/* line 90, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form select, .admin-body-container .search-form-container .search-form input {
margin-right: 10px;
font-size: 14px;
}
/* line 91, app/assets/stylesheets/admins/common.scss */
/* line 97, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error {
color: grey;
min-height: 300px;
}
/* line 95, app/assets/stylesheets/admins/common.scss */
/* line 101, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error-code {
font-size: 80px;
}
/* line 99, app/assets/stylesheets/admins/common.scss */
/* line 105, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error-text {
font-size: 24px;
}
/* line 105, app/assets/stylesheets/admins/common.scss */
/* line 111, app/assets/stylesheets/admins/common.scss */
.admin-body-container .nav-tabs .nav-link {
padding: 0.5rem 2rem;
}
/* line 110, app/assets/stylesheets/admins/common.scss */
/* line 116, app/assets/stylesheets/admins/common.scss */
.admin-body-container .CodeMirror {
border: 1px solid #ced4da;
}
/* line 114, app/assets/stylesheets/admins/common.scss */
/* line 120, app/assets/stylesheets/admins/common.scss */
.admin-body-container .batch-action-container {
margin-bottom: -15px;
padding: 10px 20px 0;
@ -26167,11 +26172,16 @@ input.form-control {
}
/* line 51, app/assets/stylesheets/admins/common.scss */
.admin-body-container .action-container .action {
.admin-body-container .action-container > .action {
padding: 0 3px;
}
/* line 57, app/assets/stylesheets/admins/common.scss */
/* line 56, app/assets/stylesheets/admins/common.scss */
.admin-body-container .action-container .more-action-dropdown .dropdown-item {
font-size: 14px;
}
/* line 63, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container {
margin-top: 20px;
display: -webkit-box;
@ -26185,68 +26195,68 @@ input.form-control {
align-items: center;
}
/* line 64, app/assets/stylesheets/admins/common.scss */
/* line 70, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container .paginate-total {
margin-bottom: 10px;
color: darkgrey;
}
/* line 69, app/assets/stylesheets/admins/common.scss */
/* line 75, app/assets/stylesheets/admins/common.scss */
.admin-body-container .paginate-container .pagination {
margin-bottom: 0px;
}
/* line 75, app/assets/stylesheets/admins/common.scss */
/* line 81, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container {
display: -webkit-box;
display: flex;
margin-bottom: 20px;
}
/* line 79, app/assets/stylesheets/admins/common.scss */
/* line 85, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form {
-webkit-box-flex: 1;
flex: 1;
}
/* line 82, app/assets/stylesheets/admins/common.scss */
/* line 88, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form * {
font-size: 14px;
}
/* line 84, app/assets/stylesheets/admins/common.scss */
/* line 90, app/assets/stylesheets/admins/common.scss */
.admin-body-container .search-form-container .search-form select, .admin-body-container .search-form-container .search-form input {
margin-right: 10px;
font-size: 14px;
}
/* line 91, app/assets/stylesheets/admins/common.scss */
/* line 97, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error {
color: grey;
min-height: 300px;
}
/* line 95, app/assets/stylesheets/admins/common.scss */
/* line 101, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error-code {
font-size: 80px;
}
/* line 99, app/assets/stylesheets/admins/common.scss */
/* line 105, app/assets/stylesheets/admins/common.scss */
.admin-body-container .global-error-text {
font-size: 24px;
}
/* line 105, app/assets/stylesheets/admins/common.scss */
/* line 111, app/assets/stylesheets/admins/common.scss */
.admin-body-container .nav-tabs .nav-link {
padding: 0.5rem 2rem;
}
/* line 110, app/assets/stylesheets/admins/common.scss */
/* line 116, app/assets/stylesheets/admins/common.scss */
.admin-body-container .CodeMirror {
border: 1px solid #ced4da;
}
/* line 114, app/assets/stylesheets/admins/common.scss */
/* line 120, app/assets/stylesheets/admins/common.scss */
.admin-body-container .batch-action-container {
margin-bottom: -15px;
padding: 10px 20px 0;

@ -322,7 +322,7 @@ module.exports = {
warnings: false,
compress: {
drop_debugger: true,
// drop_console: true
drop_console: true
}
}
}),

@ -255,7 +255,7 @@ class Fileslistitem extends Component{
{this.props.isAdmin?
<span className={"fr mr10 mt2"} onClick={(event)=>this.eventStop(event)}>
<WordsBtn style="blue" className="colorblue font-16 mr20 fr">
<a className="btn colorblue"
<a className="btn colorblue fontweight400"
onClick={()=>this.settingList()}>设置</a>
</WordsBtn>
</span>:""}
@ -264,12 +264,12 @@ class Fileslistitem extends Component{
<span className={"fr mr10 mt2"} onClick={(event)=>this.eventStop(event)}>
<WordsBtn style="blue" className="colorblue font-16 mr20 fr">
<a className="btn colorblue"
<a className="btn colorblue fontweight400"
onClick={()=>this.settingList()}>设置</a>
</WordsBtn>
<WordsBtn style="blue" className="colorblue font-16 mr20 fr">
<a className="btn colorblue"
<a className="btn colorblue fontweight400"
onClick={()=>this.onDelete(discussMessage.id)}>删除</a>
</WordsBtn>

@ -1217,7 +1217,7 @@ class CommonWorkSetting extends Component{
{/* 开启时间 */}
<div className={"h20 mb30 ml60"}>
<span>开启时间</span>
<Tooltip placement="bottom" title={this.props.isSuperAdmin()?"":starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<Tooltip placement="bottom" title={starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<ConditionToolTip condition={moment(init_evaluation_start) < this.fetchMoment} title={this.props.isAdmin()?"时间已过,不能再修改":""}>
<span>
<DatePicker
@ -1290,7 +1290,7 @@ class CommonWorkSetting extends Component{
{/* 匿评数量 */}
<div className={"h20 mb30 ml60"}>
<span>匿评数量</span>
<Tooltip placement="bottom" title={this.props.isSuperAdmin()?"":starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<Tooltip placement="bottom" title={starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<span>
<Input type="number" className="mr10" style={{width:"100px" }} value={evaluation_num} onInput={this.evaluation_num_change}
disabled={anonymous_comment && !noAuth? false : true} min={0} max={100}
@ -1303,7 +1303,7 @@ class CommonWorkSetting extends Component{
<div className={"h20 mb30 ml60"}>
<span>缺评扣分</span>
<Tooltip placement="bottom" title={this.props.isSuperAdmin()?"":starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<Tooltip placement="bottom" title={starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<span>
<Input type="number" className="mr10" style={{width:"100px" }} value={absence_penalty} onInput={this.absence_penalty_change}
disabled={ anonymous_comment && !noAuth ? false : true} min={0} max={100}
@ -1378,7 +1378,7 @@ class CommonWorkSetting extends Component{
{/* 违规匿评扣分: */}
<div className={"h20 mb30 ml60"}>
<span>违规匿评扣分</span>
<Tooltip placement="bottom" title={this.props.isSuperAdmin()?"":starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<Tooltip placement="bottom" title={starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<span>
<Input type="number" className="mr10" style={{width:"100px" }} value={appeal_penalty} onInput={this.appeal_penalty_change}
disabled={ anonymous_appeal && !noAuth ? false : true} min={0} max={100}
@ -1400,7 +1400,7 @@ class CommonWorkSetting extends Component{
</div>
<div className={"mb30 ml60"}>
<Tooltip placement="bottom" title={this.props.isSuperAdmin()?"":starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<Tooltip placement="bottom" title={starttimetype===true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<RadioGroup onChange={this.ta_mode_change} value={ta_mode}>
<Radio style={radioStyle} value={1} disabled={noAuth}>
普通模式<span className={"font-14 color-grey-9 ml10"}>选中则取各助教最终评分的平均分</span>

@ -162,17 +162,7 @@ class CoursesBanner extends Component {
return json;
};
showeditmenu = () => {
this.setState({
show: true,
})
}
hideeditmenu = () => {
this.setState({
show: false
})
}
tojoinclass = (val) => {
if(this.props.current_user&&this.props.current_user.profile_completed===false){
@ -201,13 +191,14 @@ class CoursesBanner extends Component {
yslJointhe:true
})
}
showActionPoll=(i,s,ss)=>{
showActionPoll=(i,s,ss,trs)=>{
this.setState({
modalsType: true,
modalsTopval: s,
loadtype: false,
metype: i,
modalsBottomval: ss,
modalstrsvalue:trs,
})
}
ActionPoll = (i) => {
@ -248,9 +239,10 @@ class CoursesBanner extends Component {
}
}
if (i ===5) {
s = "复制”功能将会为您创建一个新的课堂旧课堂的作业、资源、试卷";
ss = "都将被复制到新的课堂里面请问是否继续??";
this.showActionPoll(i,s,ss)
s = `“复制”功能将会为您创建一个新的课堂`;
ss = "请问是否继续?";
let mid="旧课堂的作业、资源、试卷都将被复制到新的课堂里面 ";
this.showActionPoll(i,s,ss,mid)
}
}
@ -261,7 +253,8 @@ class CoursesBanner extends Component {
modalsTopval: "",
modalsBottomval:"",
loadtype: false,
antIcon:false
antIcon:false,
modalstrsvalue:undefined
})
}
@ -483,7 +476,7 @@ class CoursesBanner extends Component {
render() {
let { Addcoursestypes, coursedata,excellent, modalsType, modalsTopval, loadtype,modalsBottomval,antIcon,is_guide,AccountProfiletype} = this.state;
let { Addcoursestypes, coursedata,excellent, modalsType, modalsTopval, loadtype,modalsBottomval,antIcon,is_guide,AccountProfiletype,modalstrsvalue} = this.state;
const isCourseEnd = this.props.isCourseEnd()
document.title=coursedata===undefined || coursedata.status===401 || coursedata.status===407?"":coursedata.name;
return (
@ -513,6 +506,7 @@ class CoursesBanner extends Component {
modalsTopval={modalsTopval}
loadtype={loadtype}
modalsBottomval={modalsBottomval}
modalsMidval={modalstrsvalue}
modalCancel={this.modalCancel}
modalSave={this.ModalAction}
antIcon={antIcon}

@ -242,15 +242,15 @@ class Selectsetting extends Component{
}
delectcousedelectfils=(id)=>{
const url = `/attachments/${id}.json`;
const url = `/attachments/${id}.json?type=history`;
axios.delete(url)
.then((response) => {
if (response.data.status == 0) {
// {"status":1,"message":"删除成功"}
this.hidecouseShixunModal()
this.getalldata()
this.props.showNotification(response.data.message);
this.getalldata
this.hidecouseShixunModal
}else{
this.props.showNotification(response.data.message);
}

@ -612,7 +612,7 @@ class ExerciseReviewAndAnswer extends Component{
let isStudent =this.props.isStudent();
const { current_user } = this.props
// console.log(data&&data.exercise.user_name)
document.title=courseName&&courseName.name;
document.title=courseName&&courseName;
return(
<div className="newMain" style={{paddingTop:"0px"}}>
<Spin size="large" spinning={isSpin}>

@ -652,6 +652,7 @@ class Exercisesetting extends Component{
<div className="clearfix" id={"publishtimeid"}>
<span className="font-16 mr15 fl mt6">发布时间</span>
<div className="fl">
<Tooltip placement="bottom" title={publish_timetype===true?this.props.isAdmin()? "发布时间已过,不能再修改":"":""}>
<DatePicker
dropdownClassName="hideDisable"
placeholder="请选择发布时间"
@ -666,6 +667,7 @@ class Exercisesetting extends Component{
value={publish_time && moment(publish_time,"YYYY-MM-DD HH:mm")}
disabled={ publish_timetype===true?true:!flagPageEdit }
></DatePicker>
</Tooltip>
<p className="color-red lineh-25 clearfix" style={{height:"25px"}}>
{
unit_p_tip !="" ? <span className="fl">{unit_p_tip}</span>:""

@ -1076,7 +1076,7 @@ debugger
<div className={"mt10 ml30"} >
<span>截止时间</span>
<Tooltip placement="bottom" title={this.props.isSuperAdmin()===true?"":this.props.isAdmin()===true?endtimetype===true?"时间已过,不能再修改":"":""}>
<Tooltip placement="bottom" title={this.props.isAdmin()===true?endtimetype===true?"时间已过,不能再修改":"":""}>
<span>
<DatePicker
showToday={false}

@ -555,7 +555,7 @@ class PollDetailTabForth extends Component{
<div className="clearfix mb5">
<span className="font-16 mr15 fl mt6">发布时间</span>
<div className="fl">
<Tooltip placement="bottom" title={un_change_unified ?this.props.isAdmin()? "发布时间已过,不能再修改":"":""}>
<Tooltip placement="bottom" title={un_change_unified == true?this.props.isAdmin()? "发布时间已过,不能再修改":"":""}>
<span>
<DatePicker
showToday={false}

@ -359,10 +359,10 @@ class ShixunhomeWorkItem extends Component{
}
</style>
{this.props.isAdmin?<span onClick={(event)=>this.stopPro(event)} className={this.props.isAdminOrCreator()?"homepagePostSetting homepagePostSettingname":"homepagePostSetting homepagePostSettingbox"} style={{"right":"-2px","top":"6px","display":"block"}}>
<Link className="btn colorblue font-16" to={"/shixuns/"+discussMessage.shixun_identifier+"/challenges"} target={"_blank"}>实训详情</Link>
{this.props.isAdminOrCreator()?<a onClick={(event)=>this.editname(discussMessage.name,discussMessage.homework_id,event)} className={"btn colorblue ml20 font-16"}>重命名</a>:""}
<Link className="btn colorblue font-16 fontweight400" to={"/shixuns/"+discussMessage.shixun_identifier+"/challenges"} target={"_blank"}>实训详情</Link>
{this.props.isAdminOrCreator()?<a onClick={(event)=>this.editname(discussMessage.name,discussMessage.homework_id,event)} className={"btn colorblue ml20 font-16 fontweight400"}>重命名</a>:""}
{/*<WordsBtn className="btn colorblue ml20 font-16" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn>*/}
<WordsBtn className="btn colorblue font-16 ml15" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn>
<WordsBtn className="btn colorblue font-16 ml15 fontweight400" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn>
</span>:""}

@ -2190,7 +2190,7 @@ class Trainingjobsetting extends Component {
<div>
<div className="clearfix mb5 ml15">
<span className="font-16 fl mt3" style={{color:"#999999"}}>发布时间</span>
<Tooltip placement="bottom" title={this.props.isSuperAdmin() ? "" : !flagPageEditstwo === true && publish_timebool === true?this.props.isAdmin()?"发布时间已过,则不能修改":"": ""}>
<Tooltip placement="bottom" title={!flagPageEditstwo === true && publish_timebool === true?this.props.isAdmin()?"发布时间已过,则不能修改":"":""}>
<div className="fl yskspickers">
<DatePicker
showToday={false}

@ -35,6 +35,7 @@ render() {
<Spin indicator={antIcons} spinning={this.props.antIcon===undefined?false:this.props.antIcon} >
<div className="task-popup-content">
<p className="task-popup-text-center font-16">{this.props.modalsTopval}</p>
{this.props.modalsMidval===undefined?"":<p className="task-popup-text-center font-16 mt5">{this.props.modalsMidval}</p>}
<p className="task-popup-text-center font-16 mt5">{this.props.modalsBottomval}</p>
{this.props.loadtype===true?
<div className="clearfix edu-txt-center mt20">

@ -3762,3 +3762,6 @@ a.singlepublishtwo{
/*width: auto !important;*/
/*max-width: 600px !important;*/
/*}*/
.fontweight400{
font-weight: 400 !important;
}

Loading…
Cancel
Save