Merge branch 'dev_huang' into dev_linda

Conflicts:
	app/views/challenges/_form.html.erb
This commit is contained in:
Linda 2017-04-12 10:17:40 +08:00
commit 68d70df2c0
20 changed files with 1235 additions and 874 deletions

View File

@ -22,11 +22,16 @@ class ShixunsController < ApplicationController
# copy_shixun复制一个新的实训模块包括版本库
# copy_myshixun自动创建系列game,game中只包含状态等信息公共信息从Challeges中读取
#
# 开启过实训的则直接跳入my实训页面
def shixun_exec
if has_exec_cur_shixun(@shixun) || User.current.id == @shixun.user_id
unless allow_shixun_exec(@shixun)
render_403
end
myshixun = Myshixun.where(:user_id => User.current.id, :shixun_id => @shixun.id).first
unless myshixun.blank?
redirect_to myshixun_game_path(myshixun.current_task, :myshixun_id => myshixun.id)
return
end
repository = @shixun.repository
ActiveRecord::Base.transaction do
begin

View File

@ -50,6 +50,10 @@ module ApplicationHelper
end
# 定义实训相关方法
def sum_final_score
Game.find_by_sql("SELECT sum(final_score) as total_score FROM `games` where user_id=#{User.current.id}").first.try(:total_score)
end
# myshixun 最高分
def top_score shixun, position
Game.find_by_sql("SELECT max(final_score) as top_score FROM `games` g, `challenges` c where g.challenge_id = c.id and c.position=#{position} and g.myshixun_id in (SELECT id FROM `myshixuns` ms where ms.shixun_id=#{shixun.id})").first.try(:top_score)
@ -276,7 +280,7 @@ module ApplicationHelper
end
def allow_shixun_exec shixun
(User.current.logged? && User.current.id != shixun.user_id && shixun.status == 1)
(User.current.logged? && User.current.id != shixun.user_id && shixun.challenges.count > 0 && !shixun.repository.blank?)
end
# 通过系统外部邮箱查找用户,如果用户不存在则用邮箱替换

View File

@ -1,2 +1,14 @@
# encoding: utf-8
module ChallengesHelper
def difficulty_type difficulty
case difficulty
when 1
"简单"
when 2
"中等"
when 3
"复杂"
end
end
end

View File

@ -4,7 +4,17 @@
<%= stylesheet_link_tag '/editormd/css/editormd','/editormd/css/editormd.min' %>
<%= javascript_include_tag '/editormd/editormd.min.js','/editormd/examples/js/jquery.min.js' %>
<style>
.CodeMirror-scroll{
overflow: auto !important;
margin-bottom: -30px;
margin-right: -30px;
padding-bottom: 30px;
height: 100%;
outline: none;
position: relative;
}
</style>
<script type="text/javascript">
$(function() {
challenge_editormd = editormd("challenge_ready_konewlege", {
@ -21,8 +31,48 @@
//这个配置在simple.html中并没有但是为了能够提交表单使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中方便post提交表单。
saveHTMLToTextarea : true,
// 用于增加自定义工具栏的功能可以直接插入HTML标签不使用默认的元素创建图标
placeholder: "请输入完成当前任务依赖的知识点或者其它相关信息"
dialogMaskOpacity : 0.6,
placeholder: "请输入完成当前任务依赖的知识点或者其它相关信息",
imageUpload : true,
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
imageUploadURL : "" //url
/*
上传的后台只需要返回一个 JSON 数据,结构如下:
{
success : 0 | 1, // 0 表示上传失败1 表示上传成功
message : "提示的信息,上传成功或上传失败及错误信息等。",
url : "图片地址" // 上传成功时才返回
}
*/
});
taskpass_editormd = editormd("challenge_task_pass", {
width : "89.6%",
height : 300,
syncScrolling : "single",
//你的lib目录的路径我这边用JSP做测试的
path : "/editormd/lib/",
toolbarIcons : function() {
// Or return editormd.toolbarModes[name]; // full, simple, mini
// Using "||" set icons align right.
return ["bold", "italic", "|", "h1", "h2", "h3", "|", "list-ul", "list-ol", "|", "image", "code", "code-block", "|", "watch", "clear"]
},
//这个配置在simple.html中并没有但是为了能够提交表单使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中方便post提交表单。
saveHTMLToTextarea : true,
// 用于增加自定义工具栏的功能可以直接插入HTML标签不使用默认的元素创建图标
dialogMaskOpacity : 0.6,
placeholder: "请输入完成当前任务依赖的知识点或者其它相关信息",
imageUpload : true,
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
imageUploadURL : "" //url
/*
上传的后台只需要返回一个 JSON 数据,结构如下:
{
success : 0 | 1, // 0 表示上传失败1 表示上传成功
message : "提示的信息,上传成功或上传失败及错误信息等。",
url : "图片地址" // 上传成功时才返回
}
*/
});
});
</script>
@ -70,16 +120,18 @@
<li class="clearfix">
<label class="panel-form-label fl"><span class="c_red mr5">*</span>过关任务:</label>
<%#= f.kindeditor :task_pass, :editor_id => "challenge_task_pass", :width=>'87.5%', :height => 159, :resizeType => 0, :no_label => true %>
<%= f.text_area :task_pass, :class => "panel-form-width-690 panel-box-sizing", :no_label => true %>
<%#= f.text_area :task_pass, :class => "panel-form-width-690 panel-box-sizing", :no_label => true %>
<div id="challenge_task_pass">
<%#= f.text_area :ready_knowledge, :placeholder => "请输入完成当前任务依赖的知识点或者其它相关信息,指导学员完成任务" %>
<textarea name="challenge[task_pass]" placeholder = "请输入完成当前任务依赖的知识点或者其它相关信息,指导学员完成任务"><%= @challenge.ready_knowledge %></textarea>
</div>
<span style="display: none" class="c_red ml90" id="new_shixun_pass">过关任务不能为空</span>
</li>
<li class="clearfix">
<label class="panel-form-label fl"><span class="c_red mr5">*</span>评测方式:</label>
<select class="fl panel-form-width-690 panel-box-sizing">
<option>输入输出</option>
<option>文件存在</option>
</select>
<%= select_tag :evaluation_way, options_for_select([["输出输出", 1], ["文件存在", 2]]), :name => 'challenge[evaluation_way]', :class => "ml5", :style => "height: 28px;" %>
</li>
<li class="clearfix">
<% if params[:action] == "edit" && @challenge.challenge_samples.count > 0 %>
<label class="panel-form-label fl">样例设置:</label>
@ -174,8 +226,16 @@
<label class=" panel-form-label fl"> 参考答案:</label>
<%= f.text_area :answer, :class => "panel-form-width-690 panel-form-height-150 fl task-textarea-pd", :no_label => true, :style => "line-height:1.9;" %>
</li>
<li class="clearfix">
<label class=" panel-form-label fl"><span class="c_red mr5">*</span>分值设定:</label>
<label class="panel-form-label fl"><span class="c_red mr5">*</span>难易度:</label>
<label><%= radio_button_tag("challenge[difficulty]", 1, checked = (@challenge.difficulty ==1 ? true : false)) %>简单 </label>
<label><%= radio_button_tag("challenge[difficulty]", 2, checked = (@challenge.difficulty ==2 ? true : false)) %>中等 </label>
<label><%= radio_button_tag("challenge[difficulty]", 3, checked = (@challenge.difficulty ==3 ? true : false)) %>困难 </label>
</li>
<li class="clearfix">
<label class="panel-form-label fl"><span class="c_red mr5">*</span>分值设定:</label>
<%= f.text_field :score, :class => "panel-form-height-30 fl", :no_label => true, :style => "padding:5px;", :placeholder => "请输入分值(只能是数字)" %>
<span class="fl ml5" style="line-height: 40px;">分</span>
<div class="clear"></div>
@ -183,10 +243,10 @@
</li>
<li class="clearfix">
<% if params[:action] == "edit" %>
<a href="javascript:void(0)" class="task-btn task-btn-green fr " onclick="challenge_update()">保存</a>
<a href="javascript:void(0)" class="task-btn task-btn-green fr" onclick="challenge_update()">保存</a>
<a href="<%= shixun_challenge_path(@challenge, :shixun_id => @shixun) %>" class="task-btn fr mr10">取消</a>
<% else %>
<a href="javascript:void(0)" class="task-btn task-btn-green fr " onclick="challenge_create()">保存</a>
<a href="javascript:void(0)" class="task-btn task-btn-green fr" onclick="challenge_create()">保存</a>
<a href="<%= shixun_challenges_path(@shixun) %>" class="task-btn fr mr10">取消</a>
<% end %>
@ -272,7 +332,7 @@
function challenge_create(){
if($('#challenge_subject').val().trim() == ""){
$("#new_shixun_name").show();
}else if($("#challenge_task_pass").val().trim() == ""){
}else if($("#challenge_task_pass textarea").val().trim() == ""){
$("#new_shixun_pass").show();
}else if($("#challenge_score").val().trim()==""){
$("#new_shixun_score").show();
@ -284,7 +344,7 @@
function challenge_update(){
if($('#challenge_subject').val().trim() == ""){
$("#new_shixun_name").show();
}else if($("#challenge_task_pass").val().trim() == ""){
}else if($("#challenge_task_pass textarea").val().trim() == ""){
$("#new_shixun_pass").show();
}else if($("#challenge_score").val().trim()==""){
$("#new_shixun_score").show();
@ -307,7 +367,7 @@
$('#challenge_answer').val(cMirror.getValue());
});
challenge_task_pass_editor = KindEditor.create('#challenge_task_pass',
/* challenge_task_pass_editor = KindEditor.create('#challenge_task_pass',
{"width":"89.7%",
"resizeType":0,
"no_label":true,
@ -330,7 +390,7 @@
"fileManagerJson":"/kindeditor/filemanager"
});
*/
function add_tag(){
var num = $(".task-bd-grey").children('div').length;
var val = $(".task-tag-input").val().trim();

View File

@ -4,23 +4,25 @@
<form action="/myshixuns/<%= @myshixun.id %>/games/<%= @game.id %>/file_update?path=<%= @path %>" method="post" id="file_update_id" data-remote="true">
<li class="clearfix" xmlns="http://www.w3.org/1999/html" id="edit_code_contents">
<textarea class = "" id="challenge-answer-edit-small" name="content" style="height: 98%;width: 98%;"><%= Redmine::CodesetUtil.replace_invalid_utf8(@content) %></textarea>
<script>
var text = document.getElementById("challenge-answer-edit-small");
</script>
<textarea class = "" id="challenge-answer-edit-small" name="content"><%= Redmine::CodesetUtil.replace_invalid_utf8(@content) %></textarea>
</li>
</form>
<script type="text/javascript">
// 自动完成
/* CodeMirror.commands.autocomplete = function(cm) {
cm.showHint({hint: CodeMirror.hint.anyword});
};*/
var editor_CodeMirror = CodeMirror.fromTextArea(document.getElementById("challenge-answer-edit-small"), {
mode: {name: 'text/x-ruby',
// version: 2,
singleLineStringErrors: false},
lineNumbers: true,
// extraKeys: {"Ctrl-Q": "autocomplete"}, // 快捷键
indentUnit: 4, //代码缩进为一个tab的距离
matchBrackets: true,
autoRefresh: true,
smartIndent: true //智能换行
smartIndent: true//智能换行
});
editor_CodeMirror.on('change',function(cMirror){
// get value right from instance
@ -35,7 +37,8 @@
// $("#challenge-answer-edit-small" ).nextAll(".CodeMirror").css("line-height", 1.2);
$(document).ready(function(){
// 设置codemirror的高度/宽度自适应
editor_CodeMirror.setSize("auto",residue_h+50+"px");
var code_height = $("#new_repository_contents").height() - $("#top_repository").height() - 15;
editor_CodeMirror.setSize("auto",code_height+"px");
editor_CodeMirror.refresh();
});
</script>

View File

@ -1,3 +1,39 @@
<div class="page--over undis" >
<div class="col-width-3 -scroll" style="height:100%;">
<div class="-task-list-header clearfix">
<h3 class="fl">全部任务</h3>
</div>
<div class="panel-list">
<div class=" clearfix -task-list-inner">
<span class="icon-success fl mr5">01</span><h4 class=" -task-list-title fl"> 础入门Python基础入门P</h4>
<div class="cl"></div>
</div>
</div>
<div class="panel-list">
<div class=" clearfix -task-list-inner">
<span class="icon-success fl mr5">02</span><h4 class=" -task-list-title fl"> 础入门Python基础入门Python基础</h4>
<a href="#" class=" fr" title="开启"><i class="fa fa-toggle-right color-light-green font-18 mt5 " ></i></a>
<div class="cl"></div>
</div>
</div>
<div class="panel-list">
<div class=" clearfix -task-list-inner">
<span class="icon-success fl mr5">03</span><h4 class=" -task-list-title fl"> 础入门Python基础入门Python基础入thon基础入thon基础入thon基础入thon基础入门</h4>
<span class=" fr color-light-green">正在解决</span>
<div class="cl"></div>
</div>
</div>
<div class="panel-list">
<div class=" clearfix -task-list-inner">
<span class="icon-success fl mr5">04</span><h4 class=" -task-list-title fl"> 础入门Python基础入门Python基</h4>
<a href="#" class=" fr"> <i class="fa fa-lock fr font-18 mt5" ></i></a>
<div class="cl"></div>
</div>
</div>
</div>
</div>
<div class="content clearfix" >
<div class="col-width-10 ml15 mt15 mr15">
<div class="panel-header clearfix">

View File

@ -1,16 +1,21 @@
<div class="content-editor col-width2 CELL" id="myshixun_repository">
<%= render :partial => 'myshixun_repository' %>
<div class="panel-header clearfix" id="top_repository">
<h3 class="fl">
<%= render :partial => 'myshixun_breadcrumbs', :locals => {:path => @path, :kind => 'dir'} %>
</h3>
<div class="fr mt5 -horizontal">
<a href="#"><i class="fa fa-arrows-alt font-16 mr5"></i></a>
</div>
</div>
<div class="content-editor-inner">
<% if params[:action] == "entry" || @file_open %>
<div id="file_entry_content">
<%= render :partial => 'games/file_edit_form', :locals => {:filename => @path, :content => @content} %>
</div>
<% else %>
<% unless @entries.blank? %>
<%= render :partial => 'tree', :locals => { :extend => false}%>
<% end %>
<% end %>
</div>
<div class="cl"></div>
<script>
var web_h = window.innerHeight;
$(document).ready(function(){
});
function extend_repository(){
$("#extend_code_results").hide();
$("#myshixun_extend_repository").show();
extend_editor.refresh();
}
</script>

View File

@ -1,51 +1,165 @@
<%= javascript_include_tag 'baiduTemplate', 'jquery.datetimepicker.js' %>
<%= javascript_include_tag "/assets/codemirror/codemirror_python_ruby_c" %>
<%= stylesheet_link_tag "/assets/codemirror/codemirror" %>
<div id="content_list" class="CELL _FLEX ROWS">
<%= render :partial => "game_show" %>
<div class="page--body -margin-t-64 -flex ">
<div class="-layout -stretch -fit">
<div class="split-panel--first -layout -vertical -flex -relative -flex-basic50" >
<div class="-fit -layout-v">
<div class="-layout-v -flex -bg-white -task-ml80">
<ul id="tab_nav" class="-tab-nav">
<li id="tab_nav_1" class="tab_hover" onclick="HoverLi1(1);">
<a href="javascript:void(0);" class="tab_type">过关任务</a>
</li>
<li id="tab_nav_2" onclick="HoverLi1(2);">
<a href="javascript:void(0);" class="tab_type" >预备知识</a>
</li>
<li id="tab_nav_3" onclick="HoverLi1(3);">
<a href="javascript:void(0);" class="tab_type" >参考答案</a>
</li>
<span class="btn-cir-big fr mt8 mr15" >经验值:<%= @game_challenge.score %></span>
</ul>
<div class="cl"></div>
<div class=" -flex -relative greytab-inner" >
<div id="tab_con_1" class=" tab-info" >
<div class="fit -scroll">
<div class="-layout-v -fit">
<div class="-flex -scroll task-padding16">
<%= h @game_challenge.task_pass.try(:html_safe) %>
</div>
</div>
</div>
</div>
<div id="tab_con_2" class="undis tab-info" >
<div class="fit -scroll">
<div class="-layout-v -fit">
<div class="-flex -scroll task-padding16">
<%= h @game_challenge.ready_knowledge.try(:html_safe) %>
</div>
</div>
</div>
</div>
<div id="tab_con_3" class="undis tab-info" >
<div class="fit -scroll">
<div class="-layout-v -fit">
<div class="-flex -scroll task-padding16">
<%= @game_challenge.answer %>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="-layout-h -center -padding-h-16 -horizontal -footer-left" >
<ul class="-layout -task-ml80" >
<li title="点赞"><i class="fa fa-thumbs-up mr15 font-20 " alt="赞" ></i></li>
<li title="踩"><i class="fa fa-thumbs-down mr15 font-20 " ></i></li>
<li title="纠错"><i class="fa fa-flag mr30 font-20 " ></i></li>
</ul>
<div class="cl"></div>
</div>
</div>
</div>
<div id="content_attr_1">
<%= render :partial => 'desc_full_show'%>
<div class="split-panel--second -layout -vertical -flex -relative -flex-basic50" >
<div class="-layout-v -flex">
<div class="-flex -relative">
<div class="split-panel -fit -vertical">
<div class="-layout -stretch -fit -vertical">
<div class="split-panel--first -layout -vertical -flex -relative -bg-black -flex-basic60">
<div class="task-source-view -fit" id="new_repository_contents">
<%= render :partial => 'games/repository' %>
</div>
</div>
<div class="split-panel--second -layout -vertical -flex -relative -bg-black -flex-basic40" >
<ul id="blacktab_nav">
<li id="blacktab_nav_1" class="blacktab_hover " onclick="HoverLi(1);">
<a href="javascript:void(0);" class="tab_type">测试结果</a>
</li>
<li id="blacktab_nav_2" onclick="HoverLi(2);">
<a href="javascript:void(0);" class="tab_type" >评测信息</a>
</li>
<i class="fa fa-expand font-16 color-grey fr mt10 mr15" ></i>
<div class="cl"></div>
</ul>
<div class="cl"></div>
<div class=" -flex -relative blacktab-inner" >
<div id="blacktab_con_1" class="" >
<div class="fit -scroll">
<div class="-layout-v -fit">
<div class="-flex -scroll task-padding16">
<p class="color-orange mb10"><i class="fa fa-exclamation-circle font-16 " ></i><span class="ml5 mr5">0/11</span> 编译错误</p>
<div class="-task-ces-box mb10 clearfix">
<div class="-task-ces-top">
<i class="fa fa-caret-down" ></i>
<span>测试集 1</span>
</div>
<div class="-task-ces-info">
<ul>
<li><span class="-task-ces-info-left color-blue">输入:</span><span>param11</span></li>
<li><span class="-task-ces-info-left color-blue">实际输出:</span><span>空</span></li>
<li><span class="-task-ces-info-left color-blue">期望输出:</span><span>3</span></li>
</ul>
</div>
</div>
<div class="-task-ces-box mb10 clearfix">
<div class="-task-ces-top">
<i class="fa fa-caret-right" ></i>
<span>测试集 2</span>
</div>
<div class="-task-ces-info">
</div>
</div>
<div class="-task-ces-box mb10 clearfix">
<div class="-task-ces-top">
<i class="fa fa-caret-right" ></i>
<span>测试集 3</span>
<i class="fa fa-lock fr mt8" ></i>
</div>
<div class="-task-ces-info">
</div>
</div>
<div class="-task-ces-box mb10 clearfix">
<div class="-task-ces-top">
<i class="fa fa-caret-right" ></i>
<span>测试集 4</span>
<i class="fa fa-exclamation-circle color-orange fr mt8" ></i>
</div>
<div class="-task-ces-info">
</div>
</div>
</div>
</div>
</div>
</div>
<div id="blacktab_con_2" class="undis " >
<div class="fit -scroll">
<div class="-layout-v -fit">
<div class="-flex -scroll task-padding16 ">
<p class="color-light-green mb10"><i class="fa fa-check-circle font-16 " ></i><span class="ml5 mr5">11/11</span> 全部通过</p>
<div class="-task-ces-box mb10 clearfix">
<div class="-task-ces-info">
<ul>
<li><span class="-task-ces-info-left ">样例测试:</span><span class="color-light-green">9/9</span></li>
<li><span class="-task-ces-info-left">隐藏测试:</span><span class="color-light-green">9/9</span></li>
<li><span class="-task-ces-info-left">经验值:</span><span class="color-light-green">+ 300</span></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="-layout-h -center -bg-grey-90 -grey-20 -bg-darkblack " style="height:48px; ">
<div class="-flex -layout-h" >
<span class="mt10 -flex ml15">耗时1天5小时10分钟</span>
<a href="#" class="task-btn task-btn-blue mr15 mt8">测评</a>
</div>
</div>
</div>
</div>
<div class="col-width content-all-fix undis" style="border: none" id="myshixun_extend_repository">
<%= render :partial => 'myshixun_extend_repository' %>
</div>
<div id="content_attr_2">
<%= render :partial => 'extend_test_output' %>
</div>
<script type="text/javascript" language="javascript">
// contents_h 是中间左侧内容页的高度,不同浏览器的得到高度不一致
// contents_top_h 是内容页头部的高度
// contents_tab_nav是三个tab的高度
// residue_h contents剩余展示内容的高度
// 左侧内容
var contents_h = $("#tpi_contents_info").height();
var contents_top_h = $("#contents_top").height() + 20;
var contents_tab_nav = $("#tab_nav").height();
var residue_h = contents_h - contents_top_h - contents_tab_nav - 10;
$(document).ready(function(){
$(".tab-info-inner").css("height", residue_h+"px");
$(".content-half-fix").css("height", residue_h + 310 +"px")
});
//课程大纲tab
function g(o){return document.getElementById(o);}
function HoverLi(n){
for(var i=1;i<=3;i++){
g('tab_nav_'+i).className='tab_nomal';
g('tab_con_'+i).className='undis';
}
g('tab_con_'+n).className='dis';
g('tab_nav_'+n).className='tab_hover';
if(n == 3){
// 点击参考答案时让codemirror展示,如果不refresh的话第一次展示会隐藏
myCodeMirror.refresh();
}
}
$("#close_myshixun_tip").click(function(){
$("#myshixun_tip").hide();
});
function close_big_repository(){
$("#myshixun_extend_repository").hide()
}
</script>
</div>

View File

@ -9,7 +9,7 @@
<%= favicon %>
<%= javascript_heads %>
<%= heads_for_theme %>
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common', 'css/font-awesome','css/taskstyle','css/structure','scm','css/public', 'css/project','css/popup','repository','css/gantt', 'css/calendar', 'css/moduel', 'css/cssPlus-v.0.2-build' %>
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common', 'css/font-awesome','css/taskstyle','css/structure','scm','css/public', 'css/project','css/popup','repository','css/gantt', 'css/calendar', 'css/moduel', 'css/cssPlus-v.0.2-build', 'css/bigdata-common','css/bigdata-public', 'css/bigdata-popup' %>
<%= call_hook :view_layouts_base_html_head %>
<!-- page specific tags -->
<%= yield :header_tags -%>
@ -18,39 +18,30 @@
<body onload="prettyPrint();">
<div class="cl"></div>
<div class="task-container EXTENDER">
<div class="COLS">
<div class="leftbar CELL" style="width: 120px;">
<div class="CELL">
<div class="user-info" style="width: 120px;height:120px;padding-top: 10px;">
<%= link_to image_tag(url_to_avatar(@myshixun.owner), :width => "100", :height => "100"), user_path(@myshixun.owner), :alt => "用户头像", :class => "user-info-img", :style => "border-radius: 100px;margin-left: 5px;" %>
<!--<a href="#" class="user-info-img"><img src="images/user/male.jpg" width="100" height="" alt="100"></a>-->
<%#= link_to @myshixun.owner.try(:show_name), user_path(@myshixun.owner), :class => "user-info-name" %>
</div>
<div class="leftnav">
<ul>
<li class="leftnav-box" style="width: 120px">
<a href="<%= myshixun_game_path(@myshixun.current_task, :myshixun_id => @myshixun) %>" class="leftnav-box-inner leftnav-active" style="width: 120px" id="current_task_tab" data-remote="true">
<i class="fa fa-gamepad font-28"></i><br/><span class="font-16">当前任务</span>
</a>
</li>
<li class="leftnav-box" style="width: 120px">
<a href="<%= myshixun_games_path(@myshixun) %>" class="leftnav-box-inner" style="width: 120px" id="all_task_tab" data-remote="true">
<i class="fa fa-qrcode font-28"></i><br/><span class="font-16">全部任务</span><span class="btn-cir ml5"><%= @myshixun.games.count %></span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="rightbar CELL _FLEX ROWS">
<div id="myshixun_top">
<%= render :partial => "myshixuns/myshixun_top" %>
</div>
<%= yield %>
</div>
<div class="page -layout-v -fit ">
<div class="page--header clearfix" id="myshixun_top">
<%= render :partial => 'myshixuns/myshixun_top' %>
</div>
<div class="page--leftnav">
<div class="user-info">
<%= link_to image_tag(url_to_avatar(@myshixun.owner), :width => "50", :height => "50"), user_path(@myshixun.owner), :alt => "用户头像", :class => "user-info-img" %>
<%= link_to @myshixun.owner.try(:show_name), user_path(@myshixun.owner), :class => "user-info-name" %>
</div>
<div class="leftnav">
<ul>
<li class="leftnav-box">
<a href="<%= myshixun_game_path(@myshixun.current_task, :myshixun_id => @myshixun) %>" class="leftnav-box-inner leftnav-active" id="current_task_tab" data-remote="true">
<i class="fa fa-gamepad font-20"></i><br/><span class="font-12">当前任务</span>
</a></li>
<li class="leftnav-box">
<a href="<%= myshixun_games_path(@myshixun) %>" class="leftnav-box-inner" id="all_task_tab" data-remote="true">
<i class="fa fa-qrcode font-20"></i><br/><span class="font-12">全部任务</span><br/><span class="btn-cir ml5"><%= @myshixun.games.count %></span>
</a>
</li>
</ul>
</div>
</div>
<%= yield %>
</div>
<div id="ajax-indicator" style="display:none;">
@ -61,14 +52,23 @@
</body>
<!-- MathJax的配置 -->
<script type="text/javascript" src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
$("#all_task_tab").click(function(){
$("#all_task_tab").addClass("leftnav-active");
$("#current_task_tab").removeClass("leftnav-active");
});
$("#current_task_tab").click(function(){
$("#current_task_tab").addClass("leftnav-active");
$("#all_task_tab").removeClass("leftnav-active");
});
function g(o){return document.getElementById(o);}
function HoverLi1(n){
for(var i=1;i<=3;i++){
g('tab_nav_'+i).className='tab_nomal';
g('tab_con_'+i).className='undis';
}
g('tab_con_'+n).className='dis';
g('tab_nav_'+n).className='tab_hover';
}
function HoverLi(n){
for(var i=1;i<=2;i++){
g('blacktab_nav_'+i).className='blacktab_nomal';
g('blacktab_con_'+i).className='undis';
}
g('blacktab_con_'+n).className='dis';
g('blacktab_nav_'+n).className='blacktab_hover';
}
</script>
<%= javascript_include_tag 'cookie','project',"avatars", 'header','prettify','select_list_move','attachments' %>
</html>

View File

@ -1,17 +1,16 @@
<div class="rightbar-header clearfix CELL">
<h2 class="rightbar-h2 fl"><%= @myshixun.name %></h2>
<a href="javascript:void(0)" class="fr rightbar-pause" id="leave_shixun_page"><i class="fa fa-power-off font-20 mt5"></i><span class="ml10">暂时离开</span></a>
<ul class="rightbar-score fr" >
<!--<li><i class="fa fa-signal font-14 mr5"></i>排名:<a href="#" class="">123</a></li>-->
<% if params[:action] == "show" && (Time.now - @game.created_at) > 60 %>
<li><i class="fa fa-trophy font-14 mr5"></i>积分:<%= shixun_final_score(@myshixun) %></li>
<li><i class="fa fa-clock-o font-14 mr5"></i>耗时:<%= @game.status != 2 ? game_spend_time(@game.created_at, Time.now) : game_spend_time(@game.created_at, @game.updated_at) %></li>
<% end %>
</ul>
<div class="-layout-h ml10 fl">
<h2 class="-header-title task-hide font-20 color-white">Helloworld:Java入门实训项目</h2>
<i class="fa fa-angle-right color-white font-20 ml5 mr5 mt10"></i>
<span class="font-20 color-white">第<%= @game_challenge.position %>关</span>
</div>
<script>
$("#leave_shixun_page").click(function(){
var htmlvalue = "<%= j (render :partial => 'games/leave_tip') %>";
pop_box_new(htmlvalue,460,316);
});
</script>
<div class="-layout-h mr10 fr mt3 -header-right-box">
<div class="-header-right clearfix">
<img src="/images/task/coin.png" class="fl" width="30" height="30">
<span class="ml5 color-white fl"><%= sum_final_score %></span>
</div>
<!--<div class="-header-right-info ">-->
<!--<font></font>-->
<!--<div class="-task-bar-bg"><span class="-task-bar-inner -task-widht-30"></span>3k/8K</div>-->
<!--<span class="font-12 color-grey">距离下次升级需要 +5000 经验值</span>-->
<!--</div>-->
</div>

View File

@ -49,7 +49,7 @@
<script>
$(document).ready(function(){
$.ajax({
url:"<%= rep_tree_changes_shixun_path(@project, :rev => @rev, :ent_path => ent_path, :gpid => @project.gpid) %>",
url:"<%= repository_tree_changes_project_path(@project, :rev => @rev, :ent_path => ent_path, :gpid => @project.gpid) %>",
type: "GET",
data: "text",
success:function(data){

View File

@ -16,7 +16,6 @@
:repository_id => @repository.identifier_param,
:path => to_path_param(ent_path),
:rev => @rev,
:depth => (depth + 1),
:parent_id => tr_id)) %>');">&nbsp;</span>
<% end %>
@ -24,42 +23,7 @@
{:action => (entry.is_dir? ? 'shixun_show' : 'shixun_entry'), :id => @shixun, :repository_id => @repository.identifier_param, :path => to_path_param(ent_path), :rev => @rev},
:class => (entry.is_dir? ? 'old-icon old-icon-folder' : "old-icon old-icon-file #{Redmine::MimeType.css_class_of(ent_name)}")%>
</td>
<div id="children_tree">
<td class="tree-author c_grey">
<div class="hidden" id="changes_author_<%= tr_id %>">
<%#= (latest_changes.author_name) if latest_changes %>
</div>
</td>
<td class="tree-comments c_grey hidden">
<div class="hidden" id="changes_message_<%= tr_id %>">
<%#= (latest_changes.message) if latest_changes %>
</div>
</td>
<td class="tree-age c_grey">
<div class="hidden" id="changes_time_<%= tr_id %>">
<%# 为了转换UTC时间时差8小时 %>
<%#= distance_of_time_in_words(latest_changes.time, Time.now) if latest_changes %>
<%#= link_to "", repository_tree_changes_project_path(@project, :rev => @rev, :ent_name => ent_name) %>
</div>
</td>
</div>
</tr>
<script>
$(document).ready(function(){
$.ajax({
url:"<%= repository_tree_changes_project_path(@shixun, :rev => @rev, :ent_path => ent_path, :gpid => @shixun.gpid) %>",
type: "GET",
data: "text",
success:function(data){
$('#changes_message_<%=tr_id %>').html(data.message)
$('#changes_author_<%=tr_id %>').html(data.author_name)
$('#changes_time_<%=tr_id %>').html(data.time)
}
});
});
</script>
<% end %>

View File

@ -6,10 +6,9 @@
<span class="ml5 mr5 fl">/ </span><p class="task-header-title fl" title="<%= @shixun.name %>"><%= @shixun.name %></p>
</h2>
<% if allow_shixun_exec(@shixun) %>
<%= link_to "开始挑战", shixun_monitor_shixun_path(@shixun),
<%= link_to "开始挑战", shixun_exec_shixun_path(@shixun),
:class => "fr task-btn task-btn-orange",
:id => "challenge_begin",
:remote => true %>
:id => "challenge_begin" %>
<% end %>
<div class="cl"></div>
</div>

View File

@ -0,0 +1,6 @@
class AddEvaluationWayToChallenge < ActiveRecord::Migration
def change
add_column :challenges, :evaluation_way, :integer, :default => 0
add_column :challenges, :difficulty, :integer, :default => 1
end
end

BIN
public/images/task/coin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -1,114 +1,119 @@
/* 重置样式 */
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td,span{ margin:0; padding:0;}
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.9; background:#f5f9fc; color:#333;}
div,img,tr,td,table{ border:0;}
table,tr,td{border:0;}
ol,ul,li{ list-style-type:none}
a:link,a:visited{text-decoration:none;color:#898989; }
a:hover {color:#29bd8b;}
/*万能清除浮动*/
.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden;}
.clearfix{clear:both;zoom:1}
.cl{ clear: both; overflow: hidden;}
/*通用浮动*/
.fl{ float: left;}
.fr{ float: right;}
/*通用文字功能样式*/
.font-bd{ font-weight: bold;}
.color-red{ color:#d2322d;}
.color-green{color:#51a74f;}
.color-light-green{color:#29bd8b;}
.color-blue{color:#6a8abe;}
.color-orenge{color:#ee4a1f;}
.color-yellow{color:#f0ad4e;}
.color-grey{color:#888;}
.color_white{ color:#fff;}
a.link-color-grey{color:#888;}
a:hover.link-color-grey{color:#29bd8b;}
a.link-color-green{color:#29bd8b;}
a.link-color-blue{color:#6a8abe;}
/*通用文字大小样式*/
.font-12{ font-size: 12px;}
.font-14{ font-size: 14px;}
.font-16{ font-size: 16px;}
.font-18{ font-size: 18px;}
.font-20{ font-size: 20px;}
.font-24{ font-size: 24px;}
.font-28{ font-size: 28px;}
.font-30{ font-size: 30px;}
/*通用内外边距*/
.mt3{ margin-top:3px;}.mt5{ margin-top:5px;}.mt8{ margin-top:8px;}.mt10{ margin-top:10px;}.mt12{ margin-top:12px;}.mt15{ margin-top:15px;}.mt20{ margin-top:20px;}.mt25{ margin-top:25px;}.mt30{ margin-top:30px;}.mt50{ margin-top:50px;}
.mb5{ margin-bottom: 5px;}.mb10{ margin-bottom: 10px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px;}
.ml5{ margin-left: 5px;}.ml10{ margin-left: 10px;}.ml15{ margin-left: 15px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml50{ margin-left: 50px;}.ml230{ margin-left: 230px;}
.mr5{ margin-right: 5px;}.mr10{ margin-right: 10px;}.mr15{ margin-right: 15px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right:30px;}
.pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;}
.pb5{ padding-bottom:5px;}.pb10{ padding-bottom:10px;}.pb15{ padding-bottom:15px;}.pb20{ padding-bottom:20px;}
.pl5{ padding-left:5px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;}
.pr5{ padding-right:5px;}.pr10{ padding-right:10px;}.pr15{ padding-right:15px;}.pr20{ padding-right:20px;}
/*定位*/
.pr{ position: relative;}
/*块*/
.col-width{ background: #fff; border:1px solid #e8e8e8;}
.col-width-10{ max-width: 100%; background: #fff; border:1px solid #e8e8e8;}
.col-width-9{ max-width: 90%; background: #fff; border:1px solid #e8e8e8;}
.col-width-8{ max-width: 80%; background: #fff; border:1px solid #e8e8e8;}
.col-width-7{ max-width: 70%; background: #fff; border:1px solid #e8e8e8;}
.col-width-6{ max-width: 60%; background: #fff; border:1px solid #e8e8e8;}
.col-width-5{ max-width: 50%; background: #fff; border:1px solid #e8e8e8;}
.col-width-4{ max-width: 40%; background: #fff; border:1px solid #e8e8e8;}
.col-width-3{ max-width: 30%; background: #fff; border:1px solid #e8e8e8;}
.col-width-2{ max-width: 20%; background: #fff; border:1px solid #e8e8e8;}
.col-width-1{ max-width: 10%; background: #fff; border:1px solid #e8e8e8;}
/*按钮*/
a.task-btn{display: inline-block;border:none; padding:0 35px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 35px;line-height: 35px; border-radius:3px;}
a:hover.task-btn {background: #c3c3c3; }
a.task-btn-grey{background: #e1e1e1; cursor: pointer;}
a:hover.task-btn-grey {background: #e1e1e1; }
a.task-btn-green{background: #29bd8b; color: #fff;}
a:hover.task-btn-green{background: #19b17e;}
a.new-btn{display: inline-block;border:none; padding:0 10px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 30px;border-radius: 3px; line-height: 30px;}
a.new-btn:hover{background: #c3c3c3; color: #333;}
a.new-btn-green{background: #29bd8b; color: #fff;}
a.new-btn-green:hover{background:#19b17e; }
a.new-btn-blue{background: #6a8abe; color: #fff;}
a.new-btn-blue:hover{background:#5f7cab; }
a.new-bigbtn{display: inline-block;border:none; padding:2px 30px;color: #666;background: #e1e1e1; text-align:center;font-size: 14px; height: 30px;line-height: 30px; border-radius: 3px;}
a:hover.new-bigbtn{background: #c3c3c3; color: #333;}
a.new-bigbtn-green{background: #3b94d6; color: #fff;}
a.new-bigbtn-green:hover{background: #2384cd; color: #fff;}
a.task-btn-ver{ height:45px; line-height: 45px; background: #6a8abe; color: #fff; border-radius:5px; font-size:12px; padding:0 10px;}
a.task-btn-ver-line{height:43px; line-height: 43px; border-radius:5px; font-size:12px; padding:0 10px; border:1px solid #ccc;}
a:hover.task-btn-ver-line{ border:1px solid #29bd8b;}
a:hover.task-btn-ver{background:#5f7cab;}
a.rest-btn-ver{ background: #969696; color: #fff; cursor: not-allowed}
a:hover.rest-btn-ver{ background: #969696;}
.new_login_submit_disable{ width:265px; height:40px; line-height: 40px; background:#ccc; color:#fff !important; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
.new_login_submit{ display: inline-block; width:100%; height:45px; line-height: 45px; background:#29bd8b; color:#fff !important; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
.new_login_submit:hover{background: #19b17e;}
.new_login_submit a{ color: #fff;}
/*提示条*/
.alert{ padding:10px;border: 1px solid transparent; text-align: center;}
.alert-blue{ background-color: #d9edf7;border-color: #bce8f1; color: #3a87ad;}
.alert-orange{ background-color: #fff9e9;border-color: #f6d0b1; color:#ee4a20;}
.alert-green{ background-color: #dff0d8;border-color: #d6e9c6; color:#3c763d;}
.close{padding: 0;cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; font-size: 21px; font-weight: bold;line-height: 1; color: #000000; text-shadow: 0 1px 0 #ffffff; opacity: 0.3;}
.close:hover{opacity: 0.5;}
/*tag*/
.task-tag{ padding:0 10px; text-align: center; display:inline-block; height:30px; line-height: 30px;}
.tag-blue{ background-color: #d9edf7; color: #3a87ad;}
.tag-grey{ background-color: #f3f5f7; color: #4d555d;}
.tag-border-grey{ background-color: #fff;border-color: #e2e2e2; color: #888;}
/****************************/
/* 页面结构*/
.task-pm-content{ width: 1000px; margin: 0 auto; }
.task-pm-box{ width: 100%; background: #fff; border: 1px solid #e8e8e8;}
.task-paner-con{ padding:15px; color:#666; line-height:2.0;}
.task-text-center{ text-align: center;}
.flow_hidden{ width:300px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
/*pre标签换行*/
.break_word{word-break: break-all;word-wrap: break-word;}
.break_word_firefox{white-space: pre-wrap !important;word-break: break-all;}
.none{ display: none; }
/* 重置样式 */
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td,span{ margin:0; padding:0;}
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.9; background:#f5f9fc; color:#333;}
div,img,tr,td,table{ border:0;}
table,tr,td{border:0;}
ol,ul,li{ list-style-type:none}
a:link,a:visited{text-decoration:none;color:#898989; }
a:hover {color:#29bd8b;}
input,textarea,select{ background: #fff; border:1px solid #ccc; color:#666;}
/*万能清除浮动*/
.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden;}
.clearfix{clear:both;zoom:1}
.cl{ clear: both; overflow: hidden;}
/*通用浮动*/
.fl{ float: left;}
.fr{ float: right;}
/*pre标签换行*/
.break-word{word-break: break-all;word-wrap: break-word;}
.break-word-firefox{white-space: pre-wrap !important;word-break: break-all;}
/*超过隐藏*/
.task-hide{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.hide{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.hide-text {overflow:hidden; white-space:nowrap;}
/*通用文字功能样式*/
.font-bd{ font-weight: bold;}
.color-red{ color:#d2322d;}
.color-green{color:#51a74f;}
.color-light-green{color:#29bd8b;}
.color-blue{color:#3498db;}
.color-orange{color:#ee4a1f;}
.color-yellow{color:#f0ad4e;}
.color-grey{color:#888;}
.color_white{ color:#fff;}
a.link-color-grey{color:#888;}
a:hover.link-color-grey{color:#29bd8b;}
a.link-color-green{color:#29bd8b;}
a.link-color-blue{color:#6a8abe;}
a.link-color-grey02{color:#888;}
a:hover.link-color-grey02{ color:red;}
/*通用文字大小样式*/
.font-12{ font-size: 12px;}
.font-14{ font-size: 14px;}
.font-16{ font-size: 16px;}
.font-18{ font-size: 18px;}
.font-20{ font-size: 20px;}
.font-24{ font-size: 24px;}
.font-28{ font-size: 28px;}
.font-30{ font-size: 30px;}
/*通用内外边距*/
.mt3{ margin-top:3px;}.mt5{ margin-top:5px;}.mt8{ margin-top:8px;}.mt10{ margin-top:10px;}.mt12{ margin-top:12px;}.mt15{ margin-top:15px;}.mt20{ margin-top:20px;}.mt25{ margin-top:25px;}.mt30{ margin-top:30px;}.mt50{ margin-top:50px;}
.mb5{ margin-bottom: 5px;}.mb10{ margin-bottom: 10px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px;}
.ml5{ margin-left: 5px;}.ml10{ margin-left: 10px;}.ml15{ margin-left: 15px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml50{ margin-left: 50px;}.ml230{ margin-left: 230px;}
.mr5{ margin-right: 5px;}.mr10{ margin-right: 10px;}.mr15{ margin-right: 15px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right:30px;}
.pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;}
.pb5{ padding-bottom:5px;}.pb10{ padding-bottom:10px;}.pb15{ padding-bottom:15px;}.pb20{ padding-bottom:20px;}
.pl5{ padding-left:5px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;}
.pr5{ padding-right:5px;}.pr10{ padding-right:10px;}.pr15{ padding-right:15px;}.pr20{ padding-right:20px;}
/*块*/
.col-width{ background: #fff; border:1px solid #e8e8e8;}
.col-width-10{ max-width: 100%; background: #fff; border:1px solid #e8e8e8;}
.col-width-9{ max-width: 90%; background: #fff; border:1px solid #e8e8e8;}
.col-width-8{ max-width: 80%; background: #fff; border:1px solid #e8e8e8;}
.col-width-7{ max-width: 70%; background: #fff; border:1px solid #e8e8e8;}
.col-width-6{ max-width: 60%; background: #fff; border:1px solid #e8e8e8;}
.col-width-5{ max-width: 50%; background: #fff; border:1px solid #e8e8e8;}
.col-width-4{ max-width: 40%; background: #fff; border:1px solid #e8e8e8;}
.col-width-3{ max-width: 30%; background: #fff; border:1px solid #e8e8e8;}
.col-width-2{ max-width: 20%; background: #fff; border:1px solid #e8e8e8;}
.col-width-1{ max-width: 10%; background: #fff; border:1px solid #e8e8e8;}
/*按钮*/
a.task-btn{display: inline-block;border:none; padding:0 35px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 35px;line-height: 35px; border-radius:3px;}
a:hover.task-btn {background: #c3c3c3; }
a.task-btn-green{background: #29bd8b; color: #fff;}
a:hover.task-btn-green{background: #19b17e;}
a.task-btn-blue{background: #3498db; color:#fff!important;}
a:hover.task-btn-blue{background: #5faee3;color:#fff;}
a.new-btn{display: inline-block;border:none; padding:0 10px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 30px;border-radius: 3px; line-height: 30px;}
a.new-btn:hover{background: #c3c3c3; color: #333;}
a.new-btn-green{background: #29bd8b; color: #fff;}
a.new-btn-green:hover{background:#19b17e; }
a.new-btn-blue{background: #6a8abe; color: #fff;}
a.new-btn-blue:hover{background:#5f7cab; }
a.new-bigbtn{display: inline-block;border:none; padding:2px 30px;color: #666;background: #e1e1e1; text-align:center;font-size: 14px; height: 30px;line-height: 30px; border-radius: 3px;}
a:hover.new-bigbtn{background: #c3c3c3; color: #333;}
a.new-bigbtn-green{background: #3b94d6; color: #fff;}
a.new-bigbtn-green:hover{background: #2384cd; color: #fff;}
a.task-btn-ver{ height:45px; line-height: 45px; background: #6a8abe; color: #fff; border-radius:5px; font-size:12px; padding:0 10px;}
a.task-btn-ver-line{height:43px; line-height: 43px; border-radius:5px; font-size:12px; padding:0 10px; border:1px solid #ccc;}
a:hover.task-btn-ver-line{ border:1px solid #29bd8b;}
a:hover.task-btn-ver{background:#5f7cab;}
.new_login_submit_disable{ width:265px; height:40px; line-height: 40px; background:#ccc; color:#fff; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
.new_login_submit{ width:100%; height:45px; line-height: 45px; background:#29bd8b; color:#fff; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
.new_login_submit:hover{background: #19b17e;}
/*提示条*/
.alert{ padding:10px;border: 1px solid transparent; text-align: center;}
.alert-blue{ background-color: #d9edf7;border-color: #bce8f1; color: #3a87ad;}
.alert-orange{ background-color: #fff9e9;border-color: #f6d0b1; color:#ee4a20;}
.alert-green{ background-color: #dff0d8;border-color: #d6e9c6; color:#3c763d;}
.task-close{padding: 0;cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; font-size: 21px; font-weight: bold;line-height: 1; color: #000000; text-shadow: 0 1px 0 #ffffff; opacity: 0.3;}
.taskclose:hover{opacity: 0.5;}
/*tag*/
.task-tag{ padding:0 10px; text-align: center; display:inline-block; height:30px; line-height: 30px;}
.tag-blue{ background-color: #d9edf7; color: #3a87ad;}
.tag-grey{ background-color: #f3f5f7; color: #4d555d;}
.tag-border-grey{ background-color: #fff;border-color: #e2e2e2; color: #888;}
.cir-orange{background: #ff6530;color: #fff; border-radius: 15px; padding: 0 5px; display: inline-block; font-size: 12px; height: 16px;line-height: 16px; }
.cir-red{background: red;color: #fff; border-radius: 15px; padding: 0 5px; display: inline-block; font-size: 12px; height: 16px;line-height: 16px; }
/****************************/
/* 页面结构*/
.task-pm-content{ width: 1000px; margin: 0 auto; }
.task-pm-box{ width: 100%; background: #fff; border: 1px solid #e8e8e8;}
.task-paner-con{ padding:15px; color:#666; line-height:2.0;}
.task-text-center{ text-align: center;}
.flow_hidden{ width:300px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
/*pre标签换行*/
.break_word{word-break: break-all;word-wrap: break-word;}
.break_word_firefox{white-space: pre-wrap !important;word-break: break-all;}

View File

@ -1,19 +1,8 @@
/* 修改密码成功弹框 */
.task-popup{background: #fff; border:1px solid #e8e8e8; border-radius:3px; -webkit-box-shadow:0 0 10px #ccc; -moz-box-shadow:0 0 10px #ccc; box-shadow:0 0 10px #ccc;}
.task-popup{ width: 30%;background: #fff; border:1px solid #e8e8e8; border-radius:3px; -webkit-box-shadow:0 0 10px #ccc; -moz-box-shadow:0 0 10px #ccc; box-shadow:0 0 10px #ccc; margin: 50px auto;}
.task-popup-text-center{ text-align: center; color: #666;}
.task-popup-title{ border-bottom: 1px solid #eee; padding:10px 15px; }
.task-popup-content{ padding:15px;}
.task-popup-submit{ margin:15px auto; width: 200px;}
/************实训弹窗****************/
.task-popup-warp{ width: 100%; height:100%; background:black; position:fixed;}
.task-popup-box{ position: relative; margin:150px auto; }
.task-box1{ width:428px; height:420px;background:url(/images/task/task-success.png) 0px 0px no-repeat;}
.task-box2{ width:496px; height:373px;background:url(/images/task/task-success02.png) 0px 50px no-repeat;}
a.task-popup-close{ display: block; background:url(/images/task/task-close.png) 0px 0px no-repeat; width: 31px; height: 31px; position:absolute; right:5px; top:100px;}
a:hover.task-popup-close{background:url(/images/task/task-close.png) -40px 0px no-repeat; }
.task-su-con{ text-align: center; padding-top:285px;}
.task-su-p{ font-size: 20px; color:#ee4a1f; font-weight: bold;}
a.task-su-btn{display: block;background:url(/images/task/task-su-btn.png) 0px -64px no-repeat; width: 138px; height: 57px;color:#ee4a1f; line-height: 50px; text-align: center; font-size: 16px; margin:20px auto;}
a:hover.task-su-btn{background:url(/images/task/task-su-btn.png) 0px 0px no-repeat; }
a.task-su-btn-white{ display: inline-block; padding:8px 25px; border:1px solid #fff; color:#fff; text-align: center; border-radius:5px; font-size:14px;}
a:hover.task-su-btn-white{ color: #ee4a1f; border:1px solid #ee4a1f; }
.task-popup-bggrey{ background:#ccc; color:#333;}

View File

@ -1,3 +1,158 @@
/* 头部 */
.header{ width:100%; height:51px;background:#46484c; }
.header_con{ width:1200px; height:50px; margin:0 auto; }
.new-logo img{ width: 31px; height: 31px; margin-top:10px;}
.new-logo p{ font-size: 18px; color:#fff; line-height: 50px; }
a.new-nav-a{ display: block; font-size: 14px; line-height: 50px; color:#fff;}
a:hover.new-nav-a{ color:#3b94d6; text-decoration: none;}
.header-search{border-radius:3px; background:#fff;}
.header-search a:hover,a:link, a:visited{ text-decoration: none; color:#666;}
input.header-search-input{ width:200px; height:30px; padding:0 5px; border-style: none; border: none;outline:none;}
.innner-nav li{float:left;}
.innner-nav li a{margin-right: 25px; display: block; color:#fff; padding:0 10px; }
.inner-btnbox02{ width:270px; margin: 30px auto 0;}
.new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;}
.inner-nav-mes{ font-size:20px; color:#fff; position: relative; margin-right:35px;}
.inner-nav-cir{ position: absolute; top:0px; left:15px; background:#ff6530; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size:10px; height:16px; line-height:16px;}
.inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;}
.inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;}
.task-user-dropdown{width:120px; background-color:#fff; border-radius:3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:relative; top:10px; right:45px; display: none; z-index:999;}
.task-user-dropdown font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left:60px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
.task-user-dropdown-nav { padding-top:5px; }
.task-user-dropdown-nav li { display: inline-block; text-align: center; width:100%; height: 30px; line-height: 30px;}
.task-user-dropdown-nav li:hover{ background:#eee;}
li.task-line{ height: 1px; line-height: 1px; border-bottom:1px solid #eee;}
.inner-nav-user:hover .task-user-dropdown{ display:block;}
/* 底部 */
.footer{width:100%; height:100px; background-color:#fff; }
.footer_con{ width:1200px; height:100px; margin:0 auto; text-align: center; padding:20px 0; }
.footer_con-inner{ width: 300px; margin:0px auto;}
.footer_con-inner li{ }
.footer_con-inner li a{ font-size: 16px; color: #888;display: block;padding:0 15px; border-right: solid 1px #888;}
.footer_con-inner li a:hover{text-decoration: underline;}
.footer_con-p{ color: #888; margin-top:10px;}
.inner-footer{ width: 100%; background:#323232; padding-bottom:30px;}
.inner-footer_con{ width: 1200px; margin: 0 auto;}
.inner-footer-nav{ height: 50px; border-bottom:1px solid #47494d;}
.inner-footer-nav li a{ float: left; margin-right:15px; font-size: 14px; color: #888; line-height: 50px;}
.saoma-box{ position: relative;}
.img-saoma{ }
.saoma-img-box{ position: absolute; top:-300px; left: -95px; border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); display: none;}
.saoma-box li:hover ul{display:block; }
.img-show{ width:50px; height:50px; border-radius:50px; }
.saoma-img-box font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
.inner-footer-p-big{ display: block; height: 50px; line-height: 50px; color:#888; font-size: 16px; border-left:2px solid #888; padding-left:15px;}
.inner-btnbox02{ width:270px; margin: 30px auto 0;}
.new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;}
/************布局 byLB****************/
.panel-content{ width: 1200px; margin:20px auto; background:#fff;}
/************讨论区20170321 byLB****************/
.panel-inner-fourm{ padding:20px; border-bottom:1px solid #eee;}
.panel-inner-fourm:hover{ background:#EFF2F7;}
.nobg:hover{ background:#fff;}
a.panel-list-title,.panel-list-title { display:inline-block; font-size: 16px; color: #333; font-weight:normal; max-width:82%;}
a:hover.panel-list-title{color:#29bd8b;}
.panel-list-img{ width: 60px; height: 60px; border-radius:100px;}
a.panel-name-small{ display: inline-block; max-width:100px; color:#29bd8b; font-size:12px; }
.panel-list-infobox{ width: 92%; margin-left:8%; margin-top:-70px;}
.panel-lightgrey,.panel-lightgrey span{ font-size:12px; color:#888;}
.panel-inner-info{ width: 92%; margin-left:8%; color:#666;}
.panel-bg-grey{ padding:5px 0;background:#f6f6f6; width: 100%; color:#666;}
.panel-list-nodata{ width: 420px; margin:100px auto; text-align: center;}
/* 回复评论 */
.panel-comment_item{ width: 100%; }
.panel-comment_item .t_area{ color:#888;}
.panel-comment_item .comment_item_cont{ padding:15px; border-bottom:1px solid #e3e3e3;}
.panel-comment_item .J_Comment_Face img{ width:50px; height:50px; border-radius:100px; }
.panel-comment_item .t_content{ width:92%; margin-left:15px;}
.panel-comment_item a.content-username { color:#333;font-size:14px; margin-right:15px; display:inline-block; max-width:100px; font-weight: bold;}
.panel-comment_item a:hover.content-username{color:#29bd8b;}
.panel-comment_item .orig_user img{width:40px; height:40px;border-radius:100px; }
.panel-comment_item .reply-right{ float:right; position:relative;}
.panel-comment_item .reply_iconup02{ position:absolute; top:22px; left:14px; color:#d4d4d4; font-size:16px; background:#f1f1f1; line-height:13px;}
.panel-comment_item .comment_orig_content{margin:10px 0; color:#999;}
.panel-comment_item .comment_orig_content .comment_orig_content{margin-top:0; color:#666;}
.panel-comment_item .orig_cont{ border:solid 1px #F3DDB3; background:#FFFEF4; padding:4px;color:#999;margin-top:-1px; }
.panel-comment_item .orig_cont_sub{ border-top:0}
.panel-comment_item .comment_orig_content .orig_index{ float:right; color:#666; font-family:Arial; padding-right:5px;line-height:30px;}
.panel-comment_item .comment_orig_content .orig_user{ margin:10px 15px 10px 5px;}
.panel-comment_item .comment_orig_content .orig_user span{ color:#999; padding-right:5px;}
.panel-comment_item .comment_orig_content .orig_content{padding:5px 0px 5px 0px;line-height:24px; color:#666; }
.panel-comment_item .orig_right{ width:80%; margin-top:5px;}
.panel-comment_item a.comment_ding_link{ height:24px;line-height:24px;display:inline-block;padding-left:2px;vertical-align:middle; color:#333; }
.panel-comment_item a:hover.comment_ding_link{ color:#269ac9;}
.panel-comment_item .comment_ding_link span{display: inline-block;padding: 0 0px 0 8px;}
.panel-comment_item .comment_ding_link em{font-style: normal;font-family:arial;}
.panel-comment_item .comment_reply_link{ display:inline-block; width:50px; height:24px;line-height: 24px; vertical-align:middle;text-align: center;}
.panel-comment_item .comment_reply_link:link,.comment_reply_link:visited{color:#333;text-decoration: none;}
.panel-comment_item .comment_content{ color:#666;}
.panel-comment_item .t_txt{ margin-top:10px;}
.panel-comment_item .orig_reply_box{border-top:1px solid #e3e3e3; width:100%;}
.panel-comment_item .orig_textarea02{ border:1px solid #ccc; background-color:#fff; width:92%; margin-bottom:10px;}
.panel-comment_item .orig_sub{ float:right; background-color:#269ac9; color:#fff; height:25px; line-height:25px; text-align:center; width:80px; border:none;}
.panel-comment_item .orig_sub:hover{ background:#297fb8;}
.panel-comment_item .orig_cont_hide{ text-align:center; width:100%; display:block; font-size:14px; color:#666; border-bottom:1px solid #F3DDB3; padding:8px 0;}
.panel-comment_item .orig_icon{ color:#888; margin-right:10px; font-size:14px; font-weight:bold;}
.orig_reply{ font-size: 12px; }
.panel-mes-head{ padding:10px; border-bottom:1px solid #eee;}
/* 表格 */
.panel-new-table { width:100%; text-align: center; }
.panel-new-table tr th{ color:#333; height: 50px;line-height:50px; }
.panel-new-table tr th,.panel-new-table tr td{ border-bottom:1px solid #eee; }
.panel-new-table tr td{color:#666; height: 40px; line-height:40px;}
.panel-table-pd15 tr td{ padding:15px 0;}
.panel-new-table tbody tr:hover{ background:#f9f9f9;}
a.panel-table-name{display:block; max-width:100px;text-align:center;}
a.panel-table-title{display:block; max-width:240px;text-align:center;}
.table-num{ width:5%; text-align: center;}
/* 滑动条 */
.panel-slider-bg{ width:240px; height: 15px; border-radius:15px; background:#f1f2f7; }
.panel-slider-inner01{ display:block; width:10%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner02{ display:block; width:20%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner03{ display:block; width:30%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner04{ display:block; width:40%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner05{ display:block; width:50%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner06{ display:block; width:60%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner07{ display:block; width:70%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner08{ display:block; width:80%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner09{ display:block; width:90%; height: 15px; border-radius:15px; background:#29bd8b;}
.panel-slider-inner10{ display:block; width:100%; height: 15px; border-radius:15px; background:#29bd8b;}
/* 翻页 */
.panel-pages a{ display: inline-block; border:1px solid #d1d1d1; color:#888; float:left;text-align:center; padding:0 10px; margin-right:5px; height: 30px; line-height: 30px; }
.panel-pages a:hover,.panel-pages .active{ background-color:#29bd8b; border:1px solid #29bd8b;color:#fff; }
.panel-pages{ width: 350px; margin:20px auto;}
/* 搜索*/
.panel-search{ position: relative;}
input.panel-search-input{ height: 30px; width:300px; color: #666;}
.panel-search-btn{ position: absolute; top:2px; right:10px;}
/* 表单*/
.panel-form-label{ display:inline-block; width:10%; min-width:90px; text-align:right; line-height:40px; font-weight: normal; }
.panel-form input,.panel-form textarea,.panel-form select{ border:1px solid #e2e2e2;color:#666;line-height: 1.9; background:#fff;}
.panel-box-sizing{-moz-box-sizing: border-box; /*Firefox3.5+*/-webkit-box-sizing: border-box; /*Safari3.2+*/-o-box-sizing: border-box; /*Opera9.6*/-ms-box-sizing: border-box; /*IE8*/box-sizing: border-box; }
input.panel-form-width-690{ padding:5px;width:90%; height:40px; }
input.panel-form-width-100{ padding:5px;width:100%; height:40px;}
input.panel-form-width-45{ padding:5px;width:44.5%; height:40px; }
textarea.panel-form-width-100{ padding:5px;width:100%; height:150px; }
textarea.panel-form-width-690{ padding:5px;width:90%; height:150px; }
.panel-form-width-670{ width: 670px; padding:5px;}
.panel-form-height-150{ height: 150px;}
.panel-form-height-30{height: 30px;}
.task-bg-grey{ background:#f3f3f3; width:90%; min-width:700px; padding:10px; border:1px solid #f3f3f3; color:#888;}
.panel-form-p{}
input.task-form-10,textarea.task-form-10,select.task-form-10,.task-form-10{padding:5px;width:10%;}
input.task-form-20,textarea.task-form-20,select.task-form-20,.task-form-20{padding:5px;width:20%;}
input.task-form-30,textarea.task-form-30,select.task-form-30,.task-form-30{padding:5px;width:30%;}
input.task-form-35,textarea.task-form-35,select.task-form-35,.task-form-35{padding:5px;width:35%;}
input.task-form-40,textarea.task-form-40,select.task-form-40,.task-form-40{padding:5px;width:40%;}
input.task-form-50,textarea.task-form-50,select.task-form-50,.task-form-50{padding:5px;width:50%;}
input.task-form-60,textarea.task-form-60,select.task-form-60,.task-form-60{padding:5px;width:60%;}
input.task-form-70,textarea.task-form-70,select.task-form-70,.task-form-70{padding:5px;width:70%;}
input.task-form-80,textarea.task-form-80,select.task-form-80,.task-form-80{padding:5px;width:80%;}
input.task-form-90,textarea.task-form-90,select.task-form-90,.task-form-90{padding:5px;width:90%;}
input.task-form-100,textarea.task-form-100,select.task-form-100,.task-form-100{padding:5px;width:100%;}
input.task-height-40,textarea.task-height-40,.task-height-40,select.task-height-40{height:40px;}
input.task-height-150,textarea.task-height-150,.task-height-150{height:150px;}
input.task-height-150,textarea.task-height-150,.task-height-100{height:100px;}

File diff suppressed because it is too large Load Diff

View File

@ -2,92 +2,26 @@
a:link,a:visited{text-decoration:none;color:#898989;}
a:hover {color:#29bd8b;}
body{ font-size:14px; line-height:2.0;}
/*万能清除浮动*/
.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}
.clearfix{clear:both;zoom:1}
.cl{ clear: both; overflow: hidden;}
/*通用浮动*/
.fl{ float: left;}
.fr{ float: right;}
/*通用文字功能样式*/
.color-red{ color:#d2322d;}
.color-green{color:#51a74f;}
.color-light-green{color:#29bd8b;}
.color-blue{color:#2788d0;}
.color-orenge{color:#ee4a1f;}
.color-yellow{color:#f0ad4e;}
.color-grey{color:#888;}
a.link-color-grey{color:#888;}
a:hover.link-color-grey{color:#29bd8b;}
a.link-color-green{color:#29bd8b;}
/*通用文字大小样式*/
.font-14{ font-size: 14px;}
.font-16{ font-size: 16px;}
.font-18{ font-size: 18px;}
.font-20{ font-size: 20px;}
.font-24{ font-size: 24px;}
.font-28{ font-size: 28px;}
.font-30{ font-size: 30px;}
/*通用内外边距*/
.mt3{ margin-top:3px;}.mt5{ margin-top:5px;}.mt7{ margin-top:7px;}.mt10{ margin-top:10px;}.mt15{ margin-top:15px;}.mt20{ margin-top:20px;}.mt25{ margin-top:25px;}.mt30{ margin-top:30px;}
.mb5{ margin-bottom: 5px;}.mb10{ margin-bottom: 10px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px;}
.ml5{ margin-left: 5px;}.ml10{ margin-left: 10px;}.ml15{ margin-left: 15px;}.ml19{margin-left: 19px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml230{ margin-left: 230px;}
.mr5{ margin-right: 5px;}.mr10{ margin-right: 10px;}.mr15{ margin-right: 15px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right:30px;}.mr45{margin-right:45px;}
.pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;}
.pb5{ padding-bottom:5px;}.pb10{ padding-bottom:10px;}.pb15{ padding-bottom:15px;}.pb20{ padding-bottom:20px;}
.pl5{ padding-left:5px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;}
.pr5{ padding-right:5px;}.pr10{ padding-right:10px;}.pr15{ padding-right:15px;}.pr20{ padding-right:20px;}
/*块*/
.col-width{background: #fff; border:1px solid #e8e8e8;}
.col-width2{background: #fff;}
.col-width-10{ max-width: 100%; background: #fff; border:1px solid #e8e8e8;}
.col-width-9{ max-width: 90%; background: #fff; border:1px solid #e8e8e8;}
.col-width-8{ max-width: 80%; background: #fff; border:1px solid #e8e8e8;}
.col-width-7{ max-width: 70%; background: #fff; border:1px solid #e8e8e8;}
.col-width-6{ max-width: 60%; background: #fff; border:1px solid #e8e8e8;}
.col-width-5{ max-width: 50%; background: #fff; border:1px solid #e8e8e8;}
.col-width-4{ max-width: 40%; background: #fff; border:1px solid #e8e8e8;}
.col-width-3{ max-width: 30%; background: #fff; border:1px solid #e8e8e8;}
.col-width-2{ max-width: 20%; background: #fff; border:1px solid #e8e8e8;}
.col-width-1{ max-width: 10%; background: #fff; border:1px solid #e8e8e8;}
/*按钮*/
a.task-btn{display: inline-block;border:none; padding:0 32px;color: #666;background: #e1e1e1; text-align:center;font-size: 14px; height: 35px;line-height: 35px; border-radius:3px;}
a:hover.task-btn {background: #c3c3c3; }
a.task-btn-green{background: #29bd8b; color: #fff;}
a:hover.task-btn-green{background: #19b17e;}
a.task-btn-orange{ background:#fc8675; color:#fff;}
a:hover.task-btn-orange{ background:#e27869;}
a.task-btn-blue{ background:#6a8abe; color:#fff;}
a:hover.task-btn-blue{ background:#5f7cab;}
/*提示条*/
.alert{ padding:10px;border: 1px solid transparent; text-align: center;}
.alert-blue{ background-color: #d9edf7;border-color: #bce8f1; color: #3a87ad;}
.alert-orange{ background-color: #fff9e9;border-color: #f6d0b1; color:#ee4a20;}
.alert-green{ background-color: #dff0d8;border-color: #d6e9c6; color:#3c763d;}
.task-close{padding: 0;cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; font-size: 21px; font-weight: bold;line-height: 1; color: #000000; text-shadow: 0 1px 0 #ffffff; opacity: 0.3;}
.task-close:hover{opacity: 0.5;}
/*tag*/
.task-tag{ padding:0 10px; text-align: center; display:inline-block; height:30px; line-height: 30px;}
.tag-blue{ background-color: #d9edf7; color: #3a87ad;}
.tag-grey{ background-color: #f3f5f7; color: #4d555d;}
.tag-border-grey{ background-color: #fff;border-color: #e2e2e2; color: #888;}
/****************************/
.task-container{ min-width:1300px; margin:0 auto; background: #f5f9fc; position: relative;}
/*左侧导航*/
.leftbar{ height: 100%; background: #1f212d; width: 210px;}
.user-info{ width: 210px; height:180px; background:#29bd8b; padding-top:30px;}
a.user-info-img{ display: block; width: 100px; height: 100px; margin:0 auto; }
a.user-info-img img{border-radius:100px;border:5px solid #3fcf9e;}
a.user-info-img img:hover{border:5px solid #4cdeac;}
a.user-info-name{ display: block; font-size: 16px; color: #fff; max-width:100px; margin: 20px auto; text-align: center;}
.leftnav-box{ width: 210px; height: 100px; background:#292b3a; padding:10px 0; margin-bottom:2px;}
a.leftnav-box-inner{ display: block; width: 207px; height:80px; border-left:3px solid #292b3a; background:#292b3a; text-align: center; padding-top:20px; color:#575f6c;}
a:hover.leftnav-box-inner,a.leftnav-active{border-left:3px solid #29bd8b;color: #fff; }
.btn-cir{ background:#575f6c; color:#292b3a;display: inline-block; padding:0px 5px; border-radius:25px; border-radius:15px; line-height:20px; font-size:12px;}
.leftbar{ height: 100%; background: #1f212d; width:80px;}
.user-info{ width:80px; height:100px; padding-top:15px;}
a.user-info-img{ display: block; width: 50px; height: 50px; margin:0 auto; }
a.user-info-img img{border-radius:100px;border:2px solid #666;}
a.user-info-img img:hover{border:2px solid #888;}
a.user-info-name{ display: block; font-size: 16px; color: #fff; max-width:100px; margin: 10px auto; text-align: center;}
.leftnav-box{ width: 80px; height: 60px; background:#292b3a; padding:10px 0; margin-bottom:2px;}
a.leftnav-box-inner{ display: block; width:77px; border-left:3px solid #292b3a; background:#292b3a; text-align: center; padding:10px 0; color:#575f6c;}
a:hover.leftnav-box-inner,a.leftnav-active{border-left:3px solid #3498db;color: #fff; }
.btn-cir{ background:#575f6c; color:#292b3a;display: inline-block; padding:0px 5px; border-radius:25px; border-radius:15px; line-height:20px; height: 20px; font-size:12px;}
.btn-cir:hover{background:#fff;}
.btn-cir-grey{background: #e1e1e1;color: #333;}
.btn-cir-grey:hover{background: #c3c3c3;}
.btn-cir-red{background:red;color: #fff; font-weight: normal;}
.btn-cir-red:hover{background:red;}
.btn-cir-orange{ background: #ee4a1f; color: #fff;}
.btn-cir-orange:hover{ background: #ee4a1f; color: #fff;}
/*右侧头部*/
.rightbar-header{width: 100%; background:#282c37; height:60px; min-width:1000px;}
.rightbar-score{ margin-top: 17px; font-size: 14px; margin-right:20px;}
@ -101,7 +35,7 @@ a.rightbar-pause{ color:#29bd8b; font-size: 18px; margin-right:15px; margin-top:
.content-row{ padding:15px; }
.content-info{ width:49.5%; min-width:250px;}
.content-editor{ width:49.3%; min-width:250px; margin-left:15px; }
.panel-header{ border-bottom:1px solid #eee; padding:10px 15px;}
.panel-header{ border-bottom:1px solid #515151; padding:5px 15px; color:#898989;}
.panel-header-border{ border:1px solid #eee; padding:10px 15px; border-bottom:none;}
/* tab */
.tab_content{ width: 100%; margin: 0 auto; background:#fff; }
@ -181,3 +115,74 @@ input.knowledge_frame{height:30px;line-height:30px;border:none;background:#f3f5f
.content-half-fix02{margin:0; position: absolute; top:65px; z-index:99; right:45px;}
.content-history-extend{ height: 98%;overflow:auto;}
.task-bg-grey .prettyprint{font-size: 9pt;font-family: Courier New,Arial;border: 1px solid #ddd;border-left: 5px solid #6CE26C;background: #f6f6f6;padding: 5px;}
/* 左右版TPI 20170410byLB */
.-fit { position: absolute; top: 0; right: 0; bottom: 0; left: 0;}
.-layout-v { display: flex; flex-direction: column;}
.page--header { position: fixed;top: 0; left:80px; right: 0; z-index: 9000;background:#33485F; height:44px; padding:10px 0; color:#fff;}
.page--leftnav{position: fixed;top:0; left:0; right: 0; z-index: 9001;width:80px; height:100%;background:#282c37;}
.page--body { position: relative;}
.-margin-t-64 { margin-top: 64px;}
.-flex { flex: 1;}
.split-panel.-fit {position: absolute;}
.split-panel { position: relative; overflow: hidden; min-height: 200px; height: 100%;}
.-stretch { align-items: stretch;}
.-layout { display: flex;}
.split-panel--first { overflow: hidden;}
.-relative { position: relative;}
.-bg-white { background-color: #eee;}
.split-panel.-handle .split-panel--second { padding-left: 2px;}
.split-panel--second { overflow: hidden;}
.task-answer-view { position: absolute; top: 0; right: 0; bottom: 0;left: 0; display: flex;
flex-direction: column; border-top: 1px solid #515151;}
.-vertical { flex-direction: column;}
.-layout-h { display: flex;flex-direction: row;}
.-horizontal { flex-direction:row-reverse;}
.-scroll{ overflow:auto;}
.-flex-basic0{flex-basis: 0%!important;}
.-flex-basic40{flex-basis: 40%;}
.-flex-basic50{flex-basis: 50%;}
.-flex-basic60{flex-basis: 60%;}
.-flex-basic100{flex-basis: 100%!important;}
.-header-title{ max-width:500px; font-weight: normal;}
.-header-right{ background:#333;border-radius:25px; padding:5px 15px; height: 30px; position: absolute; right:10px;}
.-header-right-info{ padding:10px; background:#fff; border-radius:3px; top:50px; right:10px; position: relative;display:none;color:#666;}
.-header-right-info font { border: 1px solid #dddddd; display: block;border-width: 8px; position: absolute; top: -15px;right:20px;border-style: solid; border-color: transparent transparent #fff transparent; font-size: 0; line-height: 0;}
.-header-right-box:hover .-header-right-info{ display: block;}
.-task-bar-bg{ width: 160px; height:15px; border-radius:15px; background:#ff9932; color:#fff; font-size: 12px; line-height: 15px; text-align: right; position: relative; padding-right:10px;}
.-task-bar-inner{background:#ffc100; display: block; height: 15px;border-radius:15px; position: absolute; top:0; left:0;}
.-task-widht-10{ width: 10%;}
.-task-widht-20{ width: 20%;}
.-task-widht-30{ width: 30%;}
.-task-widht-40{ width: 40%;}
.-task-widht-50{ width: 50%;}
.-task-widht-60{ width: 60%;}
.-task-widht-70{ width: 70%;}
.-task-widht-80{ width: 80%;}
.-task-widht-90{ width: 90%;}
.-task-widht-100{ width: 100%;}
.-footer-left{height:48px;background:#f5f5f5;}
.-footer-left ul { margin-top:10px;}
.-footer-left ul li{ cursor: pointer; color:#666;}
.-footer-left ul li:hover{ color:#888;}
.-bg-black{ background:#2b2b2b; color:#f4f1ed;}
.-bg-darkblack{background:#1D1D1D; color: #fff;}
.task-answer-view{ border-top:1px solid #515151; background:#333;}
#blacktab_nav {height:40px;background:#292929; }
#blacktab_nav li {float:left; padding:0px 50px;text-align:center;height: 40px;line-height: 40px; }
#blacktab_nav li a{font-size:14px; }
.blacktab_hover { background: #333;}
.blacktab_hover a{ color:#fff; }
.-task-ces-top{ padding:5px 15px; background:#515151; color:#bfbfbf;}
.-task-ces-info-left{ display: inline-block; width:100px; text-align: right; }
.-position-a-r15{ position: absolute; top:5px; right:15px;}
.btn-cir-big{ background: #999;color: #fff;display: inline-block; padding:2px 10px; border-radius:25px; border-radius:15px; line-height:20px; height: 20px; font-size:12px;}
.-task-ml80{ margin-left: 80px;}
.page--over { position: fixed;top: 0; left:80px; right: 0; z-index:10000;background:rgba(0,0,0,0.7); height:100%; color:#fff;}
.-task-list-header{ border-bottom:1px solid #eee; padding:5px 15px; color:#898989; font-size: 14px; font-weight: normal;}
.-task-list-header h3{ font-weight: normal; font-size:16px; color:#333;}
.-task-list-inner{ background:#EFF2F7; margin:10px; padding:5px;}
.-task-list-title{ font-size: 14px; color: #666;word-wrap: break-word; font-weight: normal; max-width: 80%;}
.greytab-inner{ background:#fff; }
.blacktab-inner{ background:#333;}
.task-padding16{ padding:16px;}