Merge branch 'develop' into educoder

pre_develop
jingquan huang 6 years ago
commit 5b64f42c1d

@ -109,11 +109,12 @@ module Mobile
return uw.user if uw
end
third_party_user_id = session[:third_party_user_id]
if third_party_user_id
c_user = UserSource.find_by_id(session[:third_party_user_id])
return c_user.user if c_user
end
# third_party_user_id = session[:third_party_user_id]
# Rails.logger.info("#########third_party_user_id: #{third_party_user_id}")
# if third_party_user_id
# c_user = UserSource.find_by_id(session[:third_party_user_id])
# return c_user.user if c_user
# end
token = ApiKey.where(access_token: params[:token]).first
if token && !token.expired?

@ -43,12 +43,21 @@ module Mobile
requires :accessType, type: Integer, desc: "资源类型"
end
get "source_url" do
if session[:third_party_user_id].blank?
user = User.find(params[:userId])
session[:third_party_user_id] = user.user_source.id
user = User.find_by_id(params[:userId])
return {error: -1, messages: "用户不存在,请先创建用户"} unless user
token = Token.get_or_create_permanent_login_token(user)
cookie_options = {
:value => token.value,
:expires => 1.month.from_now,
:path => (Redmine::Configuration['autologin_cookie_path'] || '/'),
:secure => (Redmine::Configuration['autologin_cookie_secure'] ? true : false),
:httponly => true
}
if Redmine::Configuration['cookie_domain'].present?
cookie_options = cookie_options.merge(domain: Redmine::Configuration['cookie_domain'])
end
CnmoocsService.new.source_url(params)
cookies[Redmine::Configuration['autologin_cookie_name'].presence || 'autologin'] = cookie_options
CnmoocsService.new.source_url(params, token)
end
desc "远程登录"

@ -193,6 +193,21 @@ class ApplicationController < ActionController::Base
find_current_user
end
def set_autologin_cookie(user)
token = Token.get_or_create_permanent_login_token(user)
cookie_options = {
:value => token.value,
:expires => 1.month.from_now,
:path => (Redmine::Configuration['autologin_cookie_path'] || '/'),
:secure => (Redmine::Configuration['autologin_cookie_secure'] ? true : false),
:httponly => true
}
if Redmine::Configuration['cookie_domain'].present?
cookie_options = cookie_options.merge(domain: Redmine::Configuration['cookie_domain'])
end
cookies[autologin_cookie_name] = cookie_options
end
def find_current_user
user = nil
unless api_request?
@ -207,9 +222,11 @@ class ApplicationController < ActionController::Base
elsif session[:wechat_openid]
uw = UserWechat.find_by_openid(session[:wechat_openid])
user = uw.user if uw
elsif session[:third_party_user_id]
c_user = UserSource.find_by_id(session[:third_party_user_id])
user = c_user.user if c_user
elsif params[:authToken]
user = Token.find_by_value(params[:authToken]).user
#set_autologin_cookie(user)
#start_user_session(user)
session[:user_id] = user.id
end
end
if user.nil? && Setting.rest_api_enabled? && accept_api_auth?
@ -335,6 +352,8 @@ class ApplicationController < ActionController::Base
end
def require_login
logger.info("#########login?: #{User.current.logged?}")
logger.info("#########get?: #{request.get?}")
if !User.current.logged?
# Extract only the basic url parameters on non-GET requests
if request.get?

@ -16,6 +16,7 @@ class ChallengesController < ApplicationController
#before_filter :find_shixun_language, :only => [:show, :new, :edit]
before_filter :base_index, :only => [:index, :index_down, :index_up, :destroy]
before_filter :view_allow, :only => [:show]
# before_filter :check_cnmooc, :only => [:index]
include ApplicationHelper
@ -487,4 +488,12 @@ class ChallengesController < ApplicationController
response.headers['content--type'] = 'text/javascript'
request.format = 'js'
end
# def check_cnmooc
# if params[:authToken]
# user = User.find_by_id(session[:user_id])
# set_autologin_cookie(user)
# end
# end
end

@ -78,5 +78,7 @@ class Managements::SchoolsController < Managements::BaseController
@active_course_total = Course.where(is_end: false).count
@shixun_homework_total = HomeworkCommon.where(homework_type: 4).count
@other_homework_total = HomeworkCommon.where(homework_type: [1, 3]).count
@shixun_total = Shixun.count
@shixun_evaluate_total = Game.sum(:evaluate_count)
end
end

@ -1,15 +1,19 @@
# encoding: utf-8
class MyshixunsController < ApplicationController
layout 'base_myshixun'
skip_before_filter :verify_authenticity_token, :only => [:training_task_status, :close_webssh, :code_runinng_message]
before_filter :require_login, :except => [:training_task_status, :close_webssh, :code_runinng_message]
skip_before_filter :verify_authenticity_token, :only => [:training_task_status, :close_webssh, :code_runinng_message, :vnc]
before_filter :require_login, :except => [:training_task_status, :close_webssh, :code_runinng_message, :vnc]
before_filter :check_authentication, :except => [:training_task_status, :close_webssh, :mul_test_home, :mul_test_user,
:mul_test_myshixun, :mul_test_shixun, :mul_test_start, :code_runinng_message]
:mul_test_myshixun, :mul_test_shixun, :mul_test_start, :code_runinng_message, :vnc]
before_filter :find_myshixun, :only => [:show, :myshixun_reset, :open_webssh, :sync_reset_time, :destroy, :search_file_list, :vnc]
DCODES = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z)
include ApplicationHelper
def archive
end
def forbidden
render_403
return
@ -357,7 +361,8 @@ class MyshixunsController < ApplicationController
host = Redmine::Configuration['tomcat_php']
begin
uri = "#{shixun_tomcat}/bridge/vnc/getvnc"
params = {tpiID:@myshixun.id}
shixun = @myshixun.shixun
params = {tpiID: @myshixun.id, :containers => "#{Base64.urlsafe_encode64(container_limit(shixun.mirror_repositories))}"}
res = uri_exec uri, params
if res && res['code'].to_i != 0
raise("实训云平台繁忙繁忙等级99")

@ -15,7 +15,8 @@ class Myshixun < ActiveRecord::Base
belongs_to :user
validates_uniqueness_of :shixun_id, :scope => :user_id, :message => "error"
# validates :shixun_id, :uniqueness => {:scope => :user_id, :message => "不能被重复开启"}
scope :min, lambda { select([:id, :shixun_id, :identifier, :gpid, :status, :user_id, :commit_id, :modify_time, :reset_time, :system_tip]) }
scope :min, lambda { select([:id, :shixun_id, :identifier, :gpid, :status, :user_id, :commit_id, :modify_time, :reset_time,
:system_tip, :gpid]) }
scope :finished, lambda{where(status: 1)}
def output_times

@ -6,7 +6,7 @@ class CnmoocsService
page = params[:pageNo].to_i
limit = params[:pageSize] || 16
offset = page * limit.to_i
resouces = []
resources = []
if params[:level].to_s == "1"
subjects = Subject.find_by_sql("SELECT subjects.id, subjects.name, subjects.status, COUNT(myshixuns.id) AS myshixun_member_count
FROM myshixuns, stage_shixuns, subjects WHERE myshixuns.shixun_id = stage_shixuns.shixun_id
@ -14,8 +14,8 @@ class CnmoocsService
GROUP BY subjects.id ORDER BY myshixun_member_count DESC limit #{offset},#{limit}")
subjects.each do |subject|
resouces << {resouceId: subject.id, parentId: nil, resouceName: subject.name, accessType: 0, nodeType: 0,
resouceType: 2}
resources << {resourceId: subject.id, parentId: nil, resourceName: subject.name, accessType: 0, nodeType: 0,
resourceType: 2}
end
totalCount = Subject.where(:status => 2, :hidden => 0).count
count = subjects.count
@ -23,8 +23,8 @@ class CnmoocsService
return {error: -1, messages: "请求二级及其更高目录时parentId不能为空"} if params[:parentId].blank?
stages = Stage.where(:subject_id => params[:parentId]).offset(offset).limit(limit)
stages.each do |stage|
resouces << {resouceId: stage.id, parentId: params[:parentId], resouceName: stage.name, accessType: 0, nodeType: 0,
resouceType: 2}
resources << {resourceId: stage.id, parentId: params[:parentId], resourceName: stage.name, accessType: 0, nodeType: 0,
resourceType: 2}
end
totalCount = Stage.where(:subject_id => params[:parentId]).count
count = stages.count
@ -33,8 +33,8 @@ class CnmoocsService
shixun_ids = StageShixun.where(:stage_id => params[:parentId]).pluck(:shixun_id)
shixuns = Shixun.where(:id => shixun_ids).offset(offset).limit(limit)
shixuns.each do |shixun|
resouces << {resouceId: shixun.id, parentId: params[:parentId], resouceName: shixun.name, accessType: 2,
nodeType: 1, resouceType: 1}
resources << {resourceId: shixun.id, parentId: params[:parentId], resourceName: shixun.name, accessType: 2,
nodeType: 1, resourceType: 1}
end
totalCount = Shixun.where(:id => shixun_ids).count
count = shixuns.count
@ -42,7 +42,7 @@ class CnmoocsService
pageCount = ((totalCount / limit.to_f) == (totalCount / limit)) ? (totalCount / limit) : ((totalCount / limit) + 1)
{error: 0, messages: "请求成功",
page: {count: count, totalCount: totalCount, pageNo: page, pageSize: limit, pageCount: pageCount},
data: {resouces: resouces} }
data: {resources: resources} }
end
def search_resources params
@ -114,17 +114,16 @@ class CnmoocsService
end
def source_url(params)
shixun = Shixun.find_by_identifier(params[:resouceId])
def source_url(params, token)
shixun = Shixun.find_by_id(params[:resourceId])
if shixun.blank?
return { error: -1, messages: '资源不存在' }
end
{ error: 0, messages: '成功', accessUrl: "#{Redmine::Configuration['educoder_domain']}/shixuns/#{shixun.identifier}" }
{ error: 0, messages: '成功', accessUrl: "#{Redmine::Configuration['educoder_domain']}/shixuns/#{shixun.identifier}/challenges?authToken=#{token.value}" }
end
def get_students_data params
shixun = Shixun.find_by_id params[:resouceId]
shixun = Shixun.find_by_id params[:resourceId]
return {error: -1, messages: "资源id不对请使用资源的id查找"} if shixun.blank?
myshixun = shixun.myshixuns.where(:user_id => params[:userId]).includes(:games).first
if myshixun.present?
@ -151,7 +150,7 @@ class CnmoocsService
challenges_count: shixun.challenges_count, score_info: shixun.averge_star, level: level}
end
{resouces: shixun_list}
{resources: shixun_list}
end
# 为新创建的用户随机生成以m为前缀的用户名m表示该用户是用邮箱注册

@ -19,6 +19,7 @@ class GamesService
shixun = Shixun.min.find(myshixun.shixun_id)
unless ((myshixun.user_id == current_user.id || current_user.business? || current_user.id == shixun.try(:user_id) ||
current_user.is_certification_teacher) && (shixun.operable?)) || current_user.admin?
Rails.logger.info("######403???")
return{:status => 403}
end
game_challenge = Challenge.min.find(game.challenge_id)
@ -44,7 +45,7 @@ class GamesService
# 高性能取上一关、下一关
prev_game = Game.prev_identifier(shixun.id, game.myshixun_id, game_challenge.position)
next_game = if current_user.is_certification_teacher || shixun_manager(shixun, current_user) || game.status || shixun.task_pass
next_game = if shixun.vnc || current_user.is_certification_teacher || shixun_manager(shixun, current_user) || game.status || shixun.task_pass
Game.next_game(shixun.id, game.myshixun_id, game_challenge.position).try(:identifier)
end
@ -75,6 +76,29 @@ class GamesService
:record => record, :grade => grade, :prev_game => prev_game, :next_game => next_game, :username => username,
:image_url => image_url, :user_url => user_url, :praise_count => praise_count, :user_praise => user_praise, :time_limit => time_limit,
:tomcat_url => Redmine::Configuration['tomcat_php'], :is_teacher => is_teacher, :power => power, :myshixun_manager => myshixun_manager}
if shixun.vnc
begin
shixun_tomcat = Redmine::Configuration['shixun_tomcat']
service_host = Redmine::Configuration['tomcat_php']
uri = "#{shixun_tomcat}/bridge/vnc/getvnc"
params = {tpiID: myshixun.id, :containers => "#{Base64.urlsafe_encode64(container_limit(shixun.mirror_repositories))}"}
res = uri_exec uri, params
if res && res['code'].to_i != 0
raise("实训云平台繁忙繁忙等级99")
end
url = service_host +":#{res['port']}/vnc_lite.html?password=headless"
Rails.logger.info("66666666sssssss#{url}")
container = container.merge(:vnc_url => url)
Rails.logger.info("777777666sssssss#{container}")
rescue Exception => e
Rails.logger.error(e.message)
end
end
if st == 0 && shixun.status == 2 && myshixun_manager
zip_path = Gitlab.endpoint.to_s + "/projects/" + myshixun.gpid.to_s + "/repository/archive?&private_token=" + Gitlab.private_token.to_s
container = container.merge(:zip_path => zip_path)
end
# 区分选择题和编程题st0编程题
if st == 0
@ -504,11 +528,12 @@ class GamesService
# 三类实训只取基础部分数据
game = Game.select([:myshixun_id, :status, :challenge_id, :id, :evaluate_count]).find_by_identifier(params[:identifier])
myshixun = Myshixun.select([:updated_at, :gpid, :id, :shixun_id]).find(game.myshixun_id)
shixun = Shixun.select([:id, :evaluate_script, :webssh, :exec_time, :sigle_training, :identifier, :status]).find(myshixun.shixun_id)
shixun = Shixun.select([:id, :evaluate_script, :webssh, :exec_time, :sigle_training, :identifier, :status, :evaluate_count]).find(myshixun.shixun_id)
game_challenge = Challenge.select([:id, :position, :picture_path]).find(game.challenge_id)
# 更新评测次数
game.update_column(:evaluate_count, (game.evaluate_count.to_i + 1))
# shixun.increment!(:evaluate_count)
# 清空代码评测信息
msg = game.run_code_message
msg.update_attributes(:status => 0, :message => nil) if msg.present?
@ -669,6 +694,7 @@ class GamesService
:evaluate_count]).find_by_identifier(params[:identifier])
# 更新评测次数
game.update_column(:evaluate_count, (game.evaluate_count.to_i + 1))
# game.challenge.shixun.increment!(:evaluate_count)
# 选择题如果通关了,则不让再评测
if game.status == 2

@ -4,7 +4,7 @@ class Management::SchoolReportService
attr_reader :params
sort_columns :student_count, :teacher_count, :homework_count, :other_homework_count,
:course_count, :active_course_count, :nearly_course_time,
:course_count, :active_course_count, :nearly_course_time, :shixun_count, :shixun_evaluate_count,
default_by: :teacher_count, default_direction: :desc
def initialize(params)
@ -47,6 +47,11 @@ class Management::SchoolReportService
nearly_course_time_map = courses.joins(:course_activities).maximum('course_activities.updated_at')
active_course_map = courses.where(is_end: false).count
shixun_map = Shixun.joins(creator: :user_extensions).where(user_extensions: { identity: User::TEACHER, school_id: ids })
.group('school_id').count
evaluate_count_map = Shixun.joins(creator: :user_extensions).where(user_extensions: { identity: User::TEACHER, school_id: ids })
.group('school_id').sum(:evaluate_count)
schools.map do |school|
{
id: school.id,
@ -58,6 +63,8 @@ class Management::SchoolReportService
course_count: course_map[school.id],
nearly_course_time: nearly_course_time_map[school.id],
active_course_count: active_course_map[school.id],
shixun_count: shixun_map.fetch(school.id, 0),
shixun_evaluate_count: evaluate_count_map.fetch(school.id, 0)
}
end
end
@ -78,6 +85,12 @@ class Management::SchoolReportService
when 'course_count' then
schools.joins('LEFT JOIN courses cs ON cs.school_id = schools.id AND cs.is_delete = 0')
.select("#{base_query_column}, COUNT(*) course_count")
when 'shixun_count' then
schools.joins(teacher_extensions: :user).joins('INNER JOIN shixuns sx ON sx.user_id = users.id')
.select("#{base_query_column}, COUNT(*) shixun_count")
when 'shixun_evaluate_count' then
schools.joins(teacher_extensions: :user).joins('INNER JOIN shixuns sx ON sx.user_id = users.id')
.select("#{base_query_column}, SUM(sx.evaluate_count) shixun_evaluate_count")
when 'nearly_course_time' then
schools.joins('LEFT JOIN courses cs ON cs.school_id = schools.id AND cs.is_delete = 0')
.joins('LEFT JOIN course_activities acs ON acs.course_id = cs.id')

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><meta name="renderer" content="webkit"/><meta name="force-rendering" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>Educoder</title><script type="text/javascript">window.__isR=!0</script><link rel="stylesheet" href="/react/build/css/css_min_all.css"><link rel="stylesheet" href="/assets/iconfont/iconfont.css"><link href="/react/build/./static/css/main.0568ccaf.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit"></div><div id="picture_display" style="display:none"></div><script type="text/javascript" src="/react/build/js/js_min_all.js"></script><script type="text/javascript" src="/assets/kindeditor/kindeditor.js"></script><script type="text/javascript" src="/react/build/js/create_kindeditor.js"></script><script type="text/javascript" src="/javascripts/educoder/edu_application.js"></script><script type="text/javascript" src="/react/build/./static/js/main.dfa4489a.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><meta name="renderer" content="webkit"/><meta name="force-rendering" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>Educoder</title><script type="text/javascript">window.__isR=!0</script><link rel="stylesheet" href="/react/build/css/css_min_all.css"><link rel="stylesheet" href="/assets/iconfont/iconfont.css"><link href="/react/build/./static/css/main.e1b0d6a5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit"></div><div id="picture_display" style="display:none"></div><script type="text/javascript" src="/react/build/js/js_min_all.js"></script><script type="text/javascript" src="/assets/kindeditor/kindeditor.js"></script><script type="text/javascript" src="/react/build/js/create_kindeditor.js"></script><script type="text/javascript" src="/javascripts/educoder/edu_application.js"></script><script type="text/javascript" src="/react/build/./static/js/main.85df3a28.js"></script></body></html>

@ -12,7 +12,7 @@
<div class="grow-date-container" style="width: 450px;display: <%= params[:data_type] == 'grow' ? 'block' : 'none' %>">
<%= text_field_tag :grow_date_input, params[:grow_date_input],
class: 'grow-date-input winput-220-30', placeholder: '请选择时间段',
class: 'grow-date-input winput-220-30', placeholder: '请选择时间段具体从当日5:00开始计算',
style: 'width: 400px;' %>
</div>
<div class="contrast-date-container" style="width: 450px;display: <%= params[:data_type] == 'contrast' ? 'block' : 'none' %>">
@ -26,13 +26,10 @@
<div style="float: left;">
<%= hidden_field_tag :data_type, params[:data_type] || 'grow' %>
<% if params[:data_type] == 'contrast' %>
<a href="javascript:void(0)" class="fl task-btn ml5 mt10 contrast-btn task-btn-orange">时间对比</a>
<a href="javascript:void(0)" class="fl task-btn ml5 mt10 grow-btn">新增数据</a>
<% else %>
<a href="javascript:void(0)" class="fl task-btn ml5 mt10 contrast-btn">时间对比</a>
<a href="javascript:void(0)" class="fl task-btn ml5 mt10 grow-btn task-btn-orange">新增数据</a>
<% end %>
<a href="javascript:void(0)" class="fl task-btn ml5 mt10 contrast-btn <%= params[:data_type] == 'contrast' ? 'task-btn-orange' : '' %>"
data-tip-down="请在左侧分别选择需进行对比的两个时段,下表显示两时段选定指标两时段变化情况对比">时段对比</a>
<a href="javascript:void(0)" class="fl task-btn ml5 mt10 grow-btn <%= params[:data_type] == 'contrast' ? '' : 'task-btn-orange' %>"
data-tip-down="请在左侧选择时间段,下表显示选定时间段内各项指标数据变化情况">数据变化</a>
</div>
<%= text_field_tag :keyword, params[:keyword], placeholder: '请输入单位名称或者ID关键字进行搜索',

@ -21,8 +21,8 @@
<th width="6%">序号</th>
<th width="10%">ID</th>
<th width="20%" class="edu-txt-left">单位名称</th>
<th width="22%">时段一<br><%= "#{params[:begin_date]}至#{params[:end_date]}" %></th>
<th width="22%">时段二<br><%= "#{params[:other_begin_date]}至#{params[:other_end_date]}" %></th>
<th width="22%">时段一<br><%= "#{params[:begin_date]} 05:00至#{params[:end_date]} 05:00" %></th>
<th width="22%">时段二<br><%= "#{params[:other_begin_date]} 05:00至#{params[:other_end_date]} 05:00" %></th>
<th width="20%" colspan="2">
<%= sort_tag('变化情况', name: 'percentage', path: school_data_contrast_managements_path) %>
<br> 新 增 数 | 新增百分比)

@ -9,7 +9,7 @@
新增教师<span class="color-red"><%= @grow_summary.teacher_increase_count || 0 %></span>人,
新增学生<span class="color-red"><%= @grow_summary.student_increase_count || 0 %></span>人,
新增课堂<span class="color-red"><%= @grow_summary.course_increase_count || 0 %></span>个,
新增实训<span class="color-red"><%= @grow_summary.shixun_increase_count || 0 %></span>个,
新增实训作业<span class="color-red"><%= @grow_summary.shixun_increase_count || 0 %></span>个,
活跃用户<span class="color-red"><%= @grow_summary.active_user_count || 0 %></span>个
</div>
<table class="edu-pop-table edu-txt-center" cellpadding="0" cellspacing="0" style="table-layout: fixed">
@ -22,7 +22,7 @@
<th width="12%"><%= sort_tag('新增教师', name: 'teacher_increase_count', path: school_data_grow_managements_path) %></th>
<th width="12%"><%= sort_tag('新增学生', name: 'student_increase_count', path: school_data_grow_managements_path) %></th>
<th width="12%"><%= sort_tag('新增课堂', name: 'course_increase_count', path: school_data_grow_managements_path) %></th>
<th width="12%"><%= sort_tag('新增实训', name: 'shixun_increase_count', path: school_data_grow_managements_path) %></th>
<th width="12%"><%= sort_tag('新增实训作业', name: 'shixun_increase_count', path: school_data_grow_managements_path) %></th>
<th width="12%"><%= sort_tag('活跃用户', name: 'active_user_count', path: school_data_grow_managements_path) %></th>
</tr>
</thead>

@ -9,6 +9,8 @@
<th width="10%"><%= sort_tag('学生总人数', name: 'student_count', path: school_report_managements_path) %></th>
<th width="10%"><%= sort_tag('课堂总数', name: 'course_count', path: school_report_managements_path) %></th>
<th width="10%"><%= sort_tag('正在进行课堂数', name: 'active_course_count', path: school_report_managements_path) %></th>
<th width="10%"><%= sort_tag('创建实训数', name: 'shixun_count', path: school_report_managements_path) %></th>
<th width="10%"><%= sort_tag('评测次数', name: 'shixun_evaluate_count', path: school_report_managements_path) %></th>
<th width="10%"><%= sort_tag('实训作业总数', name: 'homework_count', path: school_report_managements_path) %></th>
<th width="10%"><%= sort_tag('其它作业总数', name: 'other_homework_count', path: school_report_managements_path) %></th>
<th width="14%"><%= sort_tag('动态时间', name: 'nearly_course_time', path: school_report_managements_path) %></th>
@ -24,6 +26,8 @@
<td><%= school[:student_count].to_i %></td>
<td><%= school[:course_count].to_i %></td>
<td><%= school[:active_course_count].to_i %></td>
<td><%= school[:shixun_count].to_i %></td>
<td><%= school[:shixun_evaluate_count].to_i %></td>
<td><%= school[:homework_count].to_i %></td>
<td><%= school[:other_homework_count].to_i %></td>
<td><%= format_time school[:nearly_course_time] %></td>

@ -21,6 +21,8 @@
学生总人数<span class="color-red"><%= @student_total %></span>人,
课堂总数<span class="color-red"><%= @course_total %></span>个,
正在进行课堂总数<span class="color-red"><%= @active_course_total %></span>个,
创建实训数<span class="color-red"><%= @shixun_total %></span>个,
评测次数<span class="color-red"><%= @shixun_evaluate_total %></span>个,
实训作业总数<span class="color-red"><%= @shixun_homework_total %></span>个,
其它作业总数<span class="color-red"><%= @other_homework_total %></span>个,
</div>

@ -3,5 +3,5 @@ zh:
teacher_increase_count: 新增教师
student_increase_count: 新增学生
course_increase_count: 新增课堂
shixun_increase_count: 新增实训
shixun_increase_count: 新增实训作业
active_user_count: 活跃用户

@ -0,0 +1,24 @@
class AddEvaluateCountToShixuns < ActiveRecord::Migration
def up
add_column :shixuns, :evaluate_count, :integer, default: 0
# limit = 100
# total = Shixun.count
#
# ((total / 100) + 1).times do |index|
# shixun_ids = Shixun.order(:id).limit(limit).offset(index * limit).pluck(:id)
# return if shixun_ids.blank?
#
# count_map = Game.joins(:challenge).where(challenges: { shixun_id: shixun_ids }).group('shixun_id').sum(:evaluate_count)
#
# id_str = count_map.keys.join(',')
# str = count_map.map { |shixun_id, count| "WHEN #{shixun_id} THEN #{count}" }.join(' ')
#
# execute "UPDATE shixuns SET evaluate_count = CASE id #{str} END WHERE id IN (#{id_str})"
# end
end
def down
remove_column :shixuns, :evaluate_count
end
end

@ -48,12 +48,6 @@
<div class="code-name">&amp;#xe6d8;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe60f;</span>
<div class="name">章节</div>
<div class="code-name">&amp;#xe60f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xea8b;</span>
<div class="name">css3</div>
@ -72,6 +66,12 @@
<div class="code-name">&amp;#xe6b2;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe68e;</span>
<div class="name">章节</div>
<div class="code-name">&amp;#xe68e;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe66b;</span>
<div class="name">关闭</div>
@ -90,6 +90,12 @@
<div class="code-name">&amp;#xe671;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe740;</span>
<div class="name">pdf</div>
<div class="code-name">&amp;#xe740;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe69c;</span>
<div class="name">时间</div>
@ -168,6 +174,12 @@
<div class="code-name">&amp;#xe639;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe68f;</span>
<div class="name">复制</div>
<div class="code-name">&amp;#xe68f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe66d;</span>
<div class="name">点赞1</div>
@ -216,12 +228,24 @@
<div class="code-name">&amp;#xe727;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe690;</span>
<div class="name">提示</div>
<div class="code-name">&amp;#xe690;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe607;</span>
<div class="name">net</div>
<div class="code-name">&amp;#xe607;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe691;</span>
<div class="name">edit</div>
<div class="code-name">&amp;#xe691;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6c9;</span>
<div class="name"></div>
@ -234,6 +258,12 @@
<div class="code-name">&amp;#xe67f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6ac;</span>
<div class="name">下载</div>
<div class="code-name">&amp;#xe6ac;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe657;</span>
<div class="name">撤销</div>
@ -246,6 +276,12 @@
<div class="code-name">&amp;#xe687;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe74f;</span>
<div class="name">标签</div>
<div class="code-name">&amp;#xe74f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe678;</span>
<div class="name">大数据存储</div>
@ -258,6 +294,12 @@
<div class="code-name">&amp;#xe686;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe69a;</span>
<div class="name">添加成员</div>
<div class="code-name">&amp;#xe69a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe600;</span>
<div class="name">三角形</div>
@ -306,6 +348,12 @@
<div class="code-name">&amp;#xe68b;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6f8;</span>
<div class="name">三点</div>
<div class="code-name">&amp;#xe6f8;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe683;</span>
<div class="name">base</div>
@ -396,6 +444,12 @@
<div class="code-name">&amp;#xe68d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7fd;</span>
<div class="name">上传图片</div>
<div class="code-name">&amp;#xe7fd;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe684;</span>
<div class="name">登录Ip监控</div>
@ -996,6 +1050,12 @@
<div class="code-name">&amp;#xe68c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe604;</span>
<div class="name">添加导航</div>
<div class="code-name">&amp;#xe604;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
@ -1073,15 +1133,6 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-zhangjie"></span>
<div class="name">
章节
</div>
<div class="code-name">.icon-zhangjie
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-css3"></span>
<div class="name">
@ -1109,6 +1160,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-zhangjie1"></span>
<div class="name">
章节
</div>
<div class="code-name">.icon-zhangjie1
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-htmal5icon19"></span>
<div class="name">
@ -1136,6 +1196,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-pdf"></span>
<div class="name">
pdf
</div>
<div class="code-name">.icon-pdf
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shijian"></span>
<div class="name">
@ -1253,6 +1322,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-fuzhi"></span>
<div class="name">
复制
</div>
<div class="code-name">.icon-fuzhi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-dianzan11"></span>
<div class="name">
@ -1325,6 +1403,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-tishi1"></span>
<div class="name">
提示
</div>
<div class="code-name">.icon-tishi1
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-net"></span>
<div class="name">
@ -1334,6 +1421,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-edit"></span>
<div class="name">
edit
</div>
<div class="code-name">.icon-edit
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-suo"></span>
<div class="name">
@ -1352,6 +1448,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xiazai1"></span>
<div class="name">
下载
</div>
<div class="code-name">.icon-xiazai1
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-chexiao"></span>
<div class="name">
@ -1370,6 +1475,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-biaoqian"></span>
<div class="name">
标签
</div>
<div class="code-name">.icon-biaoqian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-dashujucunchu"></span>
<div class="name">
@ -1388,6 +1502,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-tianjiachengyuan"></span>
<div class="name">
添加成员
</div>
<div class="code-name">.icon-tianjiachengyuan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-triangle"></span>
<div class="name">
@ -1460,6 +1583,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-sandian"></span>
<div class="name">
三点
</div>
<div class="code-name">.icon-sandian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-base"></span>
<div class="name">
@ -1595,6 +1727,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shangchuantupian1"></span>
<div class="name">
上传图片
</div>
<div class="code-name">.icon-shangchuantupian1
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-dengluIpjiankong"></span>
<div class="name">
@ -2495,6 +2636,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-tianjiadaohang"></span>
<div class="name">
添加导航
</div>
<div class="code-name">.icon-tianjiadaohang
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
@ -2513,7 +2663,7 @@
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon--xxx"&gt;&lt;/span&gt;
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"
@ -2548,14 +2698,6 @@
<div class="code-name">#icon-roundaddfill</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-zhangjie"></use>
</svg>
<div class="name">章节</div>
<div class="code-name">#icon-zhangjie</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-css3"></use>
@ -2580,6 +2722,14 @@
<div class="code-name">#icon-31</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-zhangjie1"></use>
</svg>
<div class="name">章节</div>
<div class="code-name">#icon-zhangjie1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-htmal5icon19"></use>
@ -2604,6 +2754,14 @@
<div class="code-name">#icon-weibiaoti12</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-pdf"></use>
</svg>
<div class="name">pdf</div>
<div class="code-name">#icon-pdf</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shijian"></use>
@ -2708,6 +2866,14 @@
<div class="code-name">#icon-dianzan1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fuzhi"></use>
</svg>
<div class="name">复制</div>
<div class="code-name">#icon-fuzhi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dianzan11"></use>
@ -2772,6 +2938,14 @@
<div class="code-name">#icon-daimapeizhir</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-tishi1"></use>
</svg>
<div class="name">提示</div>
<div class="code-name">#icon-tishi1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-net"></use>
@ -2780,6 +2954,14 @@
<div class="code-name">#icon-net</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-edit"></use>
</svg>
<div class="name">edit</div>
<div class="code-name">#icon-edit</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-suo"></use>
@ -2796,6 +2978,14 @@
<div class="code-name">#icon-default</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xiazai1"></use>
</svg>
<div class="name">下载</div>
<div class="code-name">#icon-xiazai1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-chexiao"></use>
@ -2812,6 +3002,14 @@
<div class="code-name">#icon-qq</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-biaoqian"></use>
</svg>
<div class="name">标签</div>
<div class="code-name">#icon-biaoqian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dashujucunchu"></use>
@ -2828,6 +3026,14 @@
<div class="code-name">#icon-mstest</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-tianjiachengyuan"></use>
</svg>
<div class="name">添加成员</div>
<div class="code-name">#icon-tianjiachengyuan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-triangle"></use>
@ -2892,6 +3098,14 @@
<div class="code-name">#icon-chenggong</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-sandian"></use>
</svg>
<div class="name">三点</div>
<div class="code-name">#icon-sandian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-base"></use>
@ -3012,6 +3226,14 @@
<div class="code-name">#icon-zhiliangfenxi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shangchuantupian1"></use>
</svg>
<div class="name">上传图片</div>
<div class="code-name">#icon-shangchuantupian1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dengluIpjiankong"></use>
@ -3812,6 +4034,14 @@
<div class="code-name">#icon-shixundaibeijing</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-tianjiadaohang"></use>
</svg>
<div class="name">添加导航</div>
<div class="code-name">#icon-tianjiadaohang</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -29,9 +29,6 @@ Created by iconfont
<glyph glyph-name="roundaddfill" unicode="&#59096;" d="M828.704 699.424c-84.608 84.192-197.056 130.56-316.704 130.56s-232.128-46.368-316.736-130.56C110.624 615.2 64 503.168 64 384c0-119.2 46.624-231.2 131.232-315.424 84.608-84.192 197.088-130.56 316.736-130.56s232.128 46.368 316.704 130.56c84.672 84.256 131.296 196.288 131.264 315.456C959.968 503.2 913.376 615.2 828.704 699.424zM736 352l-192 0 0-192c0-17.696-14.336-32-32-32s-32 14.304-32 32l0 192L288 352c-17.664 0-32 14.336-32 32s14.336 32 32 32l192 0L480 608c0 17.664 14.336 32 32 32s32-14.336 32-32l0-192 192 0c17.696 0 32-14.336 32-32S753.696 352 736 352z" horiz-adv-x="1024" />
<glyph glyph-name="zhangjie" unicode="&#58895;" d="M278.070922 695.06383l747.29078 0C1054.468085 695.06383 1078.014184 716 1078.014184 754.58156s-23.546099 57.41844-52.652482 57.41844L278.070922 812c-29.106383 0-52.652482-18.836879-52.652482-57.41844S248.964539 695.06383 278.070922 695.06383zM1025.361702 355.886525 278.070922 355.886525c-29.106383 0-52.652482-23.035461-52.652482-57.134752 0-34.156028 23.546099-56.624113 52.652482-56.624113l747.29078 0c29.106383 0 52.652482 22.468085 52.652482 56.624113C1078.014184 332.851064 1054.468085 355.886525 1025.361702 355.886525zM1025.361702-97.673759 278.070922-97.673759c-29.106383 0-52.652482-23.148936-52.652482-57.191489 0-34.099291 23.546099-57.134752 52.652482-57.134752l747.29078 0c29.106383 0 52.652482 23.035461 52.652482 57.134752C1078.014184-120.822695 1054.468085-97.673759 1025.361702-97.673759zM56.737589 810.12766C25.41844 810.12766 0 784.765957 0 753.390071c0-31.319149 25.41844-56.737589 56.737589-56.737589s56.737589 25.41844 56.737589 56.737589C113.475177 784.765957 88.056738 810.12766 56.737589 810.12766zM56.737589 356.22695C25.41844 356.22695 0 330.865248 0 299.489362c0-31.319149 25.41844-56.737589 56.737589-56.737589s56.737589 25.41844 56.737589 56.737589C113.475177 330.865248 88.056738 356.22695 56.737589 356.22695zM56.737589-97.673759c-31.319149 0-56.737589-25.361702-56.737589-56.737589 0-31.319149 25.41844-56.737589 56.737589-56.737589s56.737589 25.41844 56.737589 56.737589C113.475177-123.035461 88.056738-97.673759 56.737589-97.673759z" horiz-adv-x="1079" />
<glyph glyph-name="css3" unicode="&#60043;" d="M157.110857 822.857143l860.013714 0-151.990857-761.709714-459.410286-152.576-398.848 152.576 40.594286 203.410286 169.691429 0-16.603429-83.968 241.152-92.013714 277.723429 92.013714 38.838857 193.682286-690.322286 0 33.133714 169.691429 690.834286 0 21.723429 109.129143-690.322286 0z" horiz-adv-x="1024" />
@ -41,6 +38,9 @@ Created by iconfont
<glyph glyph-name="31" unicode="&#59058;" d="M726.277689 668.444444l-91.886933-138.899911L539.420444 668.444444 726.277689 668.444444zM619.793067 497.777778 415.9488 497.777778l101.910756-387.629511L619.793067 497.777778zM422.752711 520.533333l190.225067 0-95.118222 139.127467L422.752711 520.533333zM401.351111 529.544533 496.310044 668.444444 309.464178 668.444444 401.351111 529.544533zM496.264533 102.843733 392.430933 497.777778 168.721067 497.777778 496.264533 102.843733zM169.039644 520.533333l210.989511 0-91.909689 138.934044L169.039644 520.533333zM747.463111 659.217067 655.712711 520.533333l210.625422 0L747.463111 659.217067zM643.310933 497.777778l-103.844978-394.899911L866.656711 497.777778 643.310933 497.777778z" horiz-adv-x="1024" />
<glyph glyph-name="zhangjie1" unicode="&#59022;" d="M336.034909 578.970182l606.021818 0c19.572364 0 35.397818 22.202182 35.397818 47.918545s-15.848727 45.730909-35.397818 45.730909l-606.021818 0c-19.572364 0-35.397818-20.014545-35.397818-45.730909S316.462545 578.970182 336.034909 578.970182zM942.056727 323.970909l-606.021818 0c-19.572364 0-35.397818-23.226182-35.397818-45.963636 0-22.760727 15.825455-47.778909 35.397818-47.778909l606.021818 0c19.572364 0 35.397818 25.018182 35.397818 47.778909C977.454545 300.744727 961.605818 323.970909 942.056727 323.970909zM942.056727-1.870545l-606.021818 0c-19.572364 0-35.397818-20.852364-35.397818-43.566545s15.825455-50.385455 35.397818-50.385455l606.021818 0c19.572364 0 35.397818 27.671273 35.397818 50.385455S961.605818-1.870545 942.056727-1.870545zM105.984 672.224c-25.995636 0-47.057455-21.085091-47.057455-47.057455 0-25.995636 21.085091-47.057455 47.057455-47.057455 25.995636 0 47.057455 21.061818 47.057455 47.057455C153.064727 651.138909 131.979636 672.224 105.984 672.224zM105.984 323.133091c-25.995636 0-47.057455-21.085091-47.057455-47.057455 0-25.995636 21.085091-47.057455 47.057455-47.057455 25.995636 0 47.057455 21.061818 47.057455 47.057455C153.064727 302.048 131.979636 323.133091 105.984 323.133091zM105.984-2.685091c-25.995636 0-47.057455-21.085091-47.057455-47.057455 0-25.995636 21.085091-47.057455 47.057455-47.057455 25.995636 0 47.057455 21.061818 47.057455 47.057455C153.064727-23.770182 131.979636-2.685091 105.984-2.685091z" horiz-adv-x="1024" />
<glyph glyph-name="htmal5icon19" unicode="&#58987;" d="M625.425306 214.410534l-115.472941 115.472941-115.471918-115.472941-54.117548 54.118572 115.471918 115.471918-115.471918 115.472941 54.117548 54.117548 115.471918-115.471918 115.472941 115.471918 54.117548-54.117548-115.472941-115.472941 115.472941-115.471918L625.425306 214.410534zM780.543176 654.590811c-148.824537 148.824537-392.356063 148.824537-541.1806 0s-148.824537-392.355039 0-541.179576 392.356063-148.824537 541.1806 0C929.367713 262.234749 929.367713 505.766274 780.543176 654.590811z" horiz-adv-x="1024" />
@ -50,6 +50,9 @@ Created by iconfont
<glyph glyph-name="weibiaoti12" unicode="&#58993;" d="M960 320 64 320c-35.2 0-64 28.8-64 64 0 35.2 28.8 64 64 64l896 0c35.2 0 64-28.8 64-64C1024 348.8 995.2 320 960 320zM960 696 64 696c-35.2 0-64 28.8-64 64 0 35.2 28.8 64 64 64l896 0c35.2 0 64-28.8 64-64C1024 724.8 995.2 696 960 696zM64 72l896 0c35.2 0 64-28.8 64-64 0-35.2-28.8-64-64-64L64-56c-35.2 0-64 28.8-64 64C0 43.2 28.8 72 64 72z" horiz-adv-x="1024" />
<glyph glyph-name="pdf" unicode="&#59200;" d="M905.185809 717.155842C898.576738 723.314515 891.19337 730.175588 883.21687 737.563873 860.422682 758.677137 837.434925 779.792209 815.697647 799.512105 813.243072 801.738123 813.243072 801.738123 810.786411 803.962919 781.783552 830.218938 757.590948 851.623498 739.713617 866.706388 729.254178 875.530889 721.020606 882.139314 714.970549 886.498273 710.955023 889.391389 707.690543 891.475255 704.47155 893.001286 700.417679 894.92311 696.638044 896.094029 691.307277 895.994072 677.045677 895.726651 665.6 884.230663 665.6 869.817273L665.6 818.647156 665.6 767.477039 665.6 665.136806 665.6 639.551748 691.2 639.551748 896 639.551748 870.4 665.136806 870.4-102.414942 896-76.829884 230.381436-76.829884C187.90385-76.829884 153.6-42.623723 153.6-0.20663L153.6 869.817273 128 844.232214 588.8 844.232214C602.93849 844.232214 614.4 855.687035 614.4 869.817273 614.4 883.94751 602.93849 895.402331 588.8 895.402331L128 895.402331 102.4 895.402331 102.4 869.817273 102.4-0.20663C102.4-70.91021 159.652833-128 230.381436-128L896-128 921.6-128 921.6-102.414942 921.6 665.136806 921.6 690.721865 896 690.721865 691.2 690.721865 716.8 665.136806 716.8 767.477039 716.8 818.647156 716.8 869.817273C716.8 856.186238 705.748075 845.08573 692.267725 844.832959 687.705707 844.747416 685.069822 845.564005 682.52845 846.768796 682.259458 846.896318 683.344977 846.203382 685.029451 844.989748 689.779394 841.567498 697.145822 835.65506 706.686383 827.605804 724.009052 812.990879 747.816448 791.927131 776.413589 766.038406 778.850014 763.831936 778.850014 763.831936 781.285216 761.623486 802.876774 742.035788 825.739479 721.03558 848.413564 700.033563 856.350957 692.6815 863.697005 685.855107 870.269888 679.730157 874.209847 676.058701 877.019309 673.434359 878.499674 672.048591 888.81866 662.389069 905.019017 662.918788 914.684179 673.231753 924.349344 683.544717 923.819315 699.735617 913.500326 709.395139 911.981323 710.817055 909.155025 713.457124 905.185809 717.155842ZM102.4 434.871281 0 434.871281 0-0.074709 512-0.074709 1024-0.074709 1024 434.871281 153.6 434.871281 153.6 435.468951 102.4 435.468951 102.4 434.871281ZM208.2 185 208.2 76.8 157.6 76.8 157.6 368 269 368C301.533495 368 327.366571 359.533419 346.5 342.6 365.633429 325.666581 375.2 303.266805 375.2 275.4 375.2 246.866524 365.833427 224.666746 347.1 208.8 328.366573 192.933254 302.133502 185 268.4 185L208.2 185ZM208.2 225.6 269 225.6C287.00009 225.6 300.733286 229.833291 310.2 238.3 319.666714 246.766709 324.4 258.999921 324.4 275 324.4 290.733412 319.600047 303.299953 310 312.7 300.399951 322.100047 287.200083 326.933331 270.4 327.2L208.2 327.2 208.2 225.6ZM419.4 76.8 419.4 368 505.4 368C531.133461 368 553.966566 362.266724 573.9 350.8 593.833434 339.333276 609.266611 323.066771 620.2 302 631.133389 280.933229 636.6 256.800137 636.6 229.6L636.6 215C636.6 187.399861 631.100055 163.133438 620.1 142.2 609.099945 121.266562 593.433436 105.133391 573.1 93.8 552.766564 82.466609 529.466799 76.8 503.2 76.8L419.4 76.8ZM470 327.2 470 117.2 503 117.2C529.533466 117.2 549.89993 125.499917 564.1 142.1 578.30007 158.700083 585.533331 182.533178 585.8 213.6L585.8 229.8C585.8 261.400158 578.933402 285.53325 565.2 302.2 551.466598 318.86675 531.533463 327.2 505.4 327.2L470 327.2ZM854.8 200.2 737.6 200.2 737.6 76.8 687 76.8 687 368 872 368 872 327.2 737.6 327.2 737.6 240.6 854.8 240.6 854.8 200.2Z" horiz-adv-x="1024" />
<glyph glyph-name="shijian" unicode="&#59036;" d="M506.678925-81.849905c-63.955231 0-125.966224 12.484061-184.395723 37.247527-56.382932 23.84251-107.035475 58.020186-150.627361 101.509743-43.489557 43.489557-77.667233 94.142101-101.509743 150.627361-24.763466 58.429499-37.247527 120.440492-37.247527 184.395723S45.382632 517.999001 70.043769 576.4285c23.84251 56.382932 58.020186 107.035475 101.509743 150.627361 43.489557 43.489557 94.142101 77.667233 150.627361 101.509743 58.429499 24.763466 120.440492 37.247527 184.395723 37.247527s125.966224-12.484061 184.395723-37.247527c56.382932-23.84251 107.035475-58.020186 150.627361-101.509743 43.489557-43.489557 77.667233-94.142101 101.509743-150.627361 24.763466-58.429499 37.247527-120.440492 37.247527-184.395723S967.872889 265.964225 943.211752 207.534726c-23.84251-56.382932-58.020186-107.035475-101.509743-150.627361-43.489557-43.489557-94.142101-77.667233-150.627361-101.509743C632.645148-69.263516 570.531828-81.849905 506.678925-81.849905zM506.678925 804.31378c-55.666633 0-109.696013-10.949136-160.553213-32.438093-49.117618-20.772659-93.221145-50.550215-131.082642-88.411712s-67.639053-81.965024-88.411712-131.082642c-21.488958-50.8572-32.438093-104.784251-32.438093-160.553213s10.949136-109.696013 32.438093-160.553213c20.772659-49.117618 50.550215-93.221145 88.411712-131.082642s81.965024-67.639053 131.082642-88.411712c50.8572-21.488958 104.784251-32.438093 160.553213-32.438093s109.696013 10.949136 160.553213 32.438093c49.117618 20.772659 93.221145 50.550215 131.082642 88.411712s67.639053 81.965024 88.411712 131.082642c21.488958 50.8572 32.438093 104.784251 32.438093 160.553213s-10.949136 109.696013-32.438093 160.553213c-20.772659 49.117618-50.550215 93.221145-88.411712 131.082642s-81.965024 67.639053-131.082642 88.411712C616.272609 793.466973 562.345558 804.31378 506.678925 804.31378zM724.536025 396.125912l-204.65674 0-0.920955 280.993704c-0.102328 16.884181-13.81433 30.596183-30.698511 30.596183 0 0-0.102328 0-0.102328 0-16.986509-0.102328-30.698511-13.81433-30.596183-30.800839l1.023284-310.873588c0-0.204657 0-0.409313 0-0.61397 0-16.884181 13.712002-30.698511 30.698511-30.698511l235.355251 0c16.884181 0 30.698511 13.712002 30.698511 30.698511S741.522534 396.125912 724.536025 396.125912z" horiz-adv-x="1024" />
@ -89,6 +92,9 @@ Created by iconfont
<glyph glyph-name="dianzan1" unicode="&#58937;" d="M281.504 528.246v0c0 0 31.971 1.032 31.971-31.971v-446.554c0 0 0-18.563-22.688-18.563h-109.317c0 0-26.814 0-26.814 26.814l-25.782 444.491c0 0 0 25.782 26.813 25.782h125.818zM841.501 528.246v0c0 0 53.628 5.156 53.628-50.533 0 0 0-102.099-78.379-368.174 0 0-24.751-78.379-54.659-78.379h-315.578c-22.688 0-78.379 15.47-78.379 56.722v440.365c0 0 155.726 92.817 155.726 240.293 5.156 7.219-7.219 53.627 51.565 53.627 0 0 137.163 8.249 55.69-293.921h210.385zM571.3 782.976c14.438-4.125 26.814-19.596 31.971-30.939 30.939-62.909 7.219-150.571-9.282-213.479l-6.188-21.657c-6.187-23.72 0-26.814 25.782-26.814h208.323c26.814 0 34.033-9.282 31.971-38.159-2.063-18.563-5.156-28.878-8.249-44.347-16.501-88.692-41.252-201.104-67.034-286.702-15.47-49.503-36.096-50.534-81.472-50.534h-242.356c-38.159 0-48.471 26.813-48.471 56.722v382.612c88.692 44.347 154.695 157.789 156.758 252.669 1.032 5.156 1.032 9.282 2.063 15.47 0 1.032 0 3.094 0 4.125 2.063 1.032 4.125 1.032 6.188 1.032zM169.093 489.056h105.193v-418.708h-81.472l-23.72 418.708z" horiz-adv-x="1024" />
<glyph glyph-name="fuzhi" unicode="&#59023;" d="M715.436342 115.85796c-21.404496 0-38.724976-17.3389-38.724976-38.724976l0-30.31033c0-18.379603-14.938224-33.335223-33.316803-33.335223L176.316681 13.487432c-18.379603 0-33.354666 14.956643-33.354666 33.335223L142.962016 513.901559c0 18.379603 14.976086 33.316803 33.354666 33.316803l26.888394 0c21.404496 0 38.724976 17.3389 38.724976 38.724976s-17.320481 38.724976-38.724976 38.724976l-26.888394 0c-61.112869 0-110.803595-49.691749-110.803595-110.765733l0-467.078905c0-61.093427 49.691749-110.785176 110.803595-110.785176l467.078905 0c61.075007 0 110.765733 49.691749 110.765733 110.785176l0 30.31033C754.161319 98.51906 736.840838 115.85796 715.436342 115.85796zM842.313008 831.962521 386.012587 831.962521c-64.062038 0-116.173906-52.111868-116.173906-116.173906l0-456.282001c0-64.062038 52.111868-116.173906 116.173906-116.173906l456.30042 0c64.062038 0 116.173906 52.111868 116.173906 116.173906l0 456.282001C958.486914 779.850653 906.375046 831.962521 842.313008 831.962521zM881.037984 259.506615c0-21.348214-17.358343-38.724976-38.724976-38.724976L386.012587 220.781638c-21.366633 0-38.724976 17.376763-38.724976 38.724976l0 456.282001c0 21.348214 17.358343 38.724976 38.724976 38.724976l456.30042 0c21.366633 0 38.724976-17.376763 38.724976-38.724976L881.037984 259.506615z" horiz-adv-x="1024" />
<glyph glyph-name="dianzan11" unicode="&#58989;" d="M890.908 466.466c-20.66 26.05-51.585 40.99-84.84 40.99l-189.34 0c10.34 28.83 17.18 60.165 19.615 90.48 3.785 47.147-3.465 89.02-20.955 121.095-21.53 39.46-58.18 64.072-105.997 71.177-21.662 3.22-40.292-0.945-55.377-12.372-30.495-23.102-36.092-67.065-42.575-117.97-5.182-40.692-11.055-86.817-30.79-119.877-13.172-22.065-38.807-51.397-109.092-51.397l-73.345 0c-48.842 0-88.58-39.722-88.58-88.545l0-334.754c0-48.82 39.737-88.545 88.58-88.545l534.336 0c24.33 0 48.22 8.325 67.275 23.43 19.06 15.11 32.605 36.475 38.145 60.155l73.52 314.264C919.058 406.946 911.553 440.431 890.908 466.466zM168.672 65.292 168.672 400.044c0 16.27 13.252 29.505 29.537 29.505l62.232 0 0-393.762-62.232 0C181.925 35.787 168.672 49.022 168.672 65.292zM853.998 388.044l-73.52-314.272c-5.23-22.36-24.94-37.985-47.93-37.985L319.484 35.787 319.484 433.831c49.877 9.52 87.4 34.92 111.86 75.895 26.05 43.64 32.75 96.257 38.662 142.68 2.67 20.977 5.193 40.79 9.2 55.99 4.297 16.302 8.745 21.08 10.457 22.377 1.96 1.485 5.677 1.835 11.05 1.035 29.615-4.4 50.175-17.83 62.84-41.052 25.99-47.642 14.505-128.052-10.265-182.86-5.93-13.127-4.83-28.167 2.96-40.232 7.78-12.052 21.01-19.247 35.395-19.247l214.424 0c15.125 0 29.185-6.792 38.58-18.637C854.028 417.951 857.438 402.739 853.998 388.044z" horiz-adv-x="1024" />
@ -113,27 +119,42 @@ Created by iconfont
<glyph glyph-name="daimapeizhir" unicode="&#59175;" d="M513.536 892.928C233.472 892.928 5.632 665.088 5.632 385.536c0-280.064 227.84-507.904 507.904-507.904 280.064 0 507.904 227.84 507.904 507.904C1020.928 665.088 793.6 892.928 513.536 892.928zM425.984 233.984c-4.608-5.12-10.752-7.168-16.896-7.168-5.632 0-11.264 2.048-15.36 6.144L246.272 368.64c-5.12 4.608-7.68 11.264-7.168 17.92-0.512 6.656 2.048 13.312 7.68 18.432L394.24 534.016c9.216 8.192 24.064 7.168 32.256-2.048 8.192-9.216 7.168-24.064-2.048-32.256L294.4 386.048 424.448 266.24C433.664 257.536 434.176 243.2 425.984 233.984zM574.976 586.24 512 177.664c-1.536-11.264-11.264-19.456-22.528-19.456-1.024 0-2.56 0-3.584 0.512-12.288 2.048-20.992 13.312-18.944 26.112l62.464 408.576c2.048 12.288 13.312 20.992 26.112 18.944C568.32 610.304 576.512 598.528 574.976 586.24zM803.328 361.472l-147.456-136.192c-4.608-4.096-9.728-6.144-15.36-6.144-6.144 0-12.288 2.56-16.896 7.168-8.704 9.216-8.192 23.552 1.536 32.256l130.048 119.808-129.536 113.664c-9.216 8.192-10.24 22.528-2.048 32.256 8.192 9.216 22.528 10.24 32.256 2.048l147.456-129.536c5.632-4.608 8.192-11.776 7.68-18.432C810.496 372.736 808.448 366.08 803.328 361.472z" horiz-adv-x="1024" />
<glyph glyph-name="tishi1" unicode="&#59024;" d="M922.42944 557.38368c-22.44096 53.0432-54.54848 100.67456-95.4624 141.58336-40.89856 40.89856-88.54016 73.02656-141.57824 95.4624C630.47168 817.65888 572.12928 829.44 512 829.44c-60.11904 0-118.4512-11.78112-173.37856-35.01056-53.03296-22.43584-100.67968-54.55872-141.58336-95.45728-40.9088-40.9088-73.02656-88.54528-95.4624-141.58336C78.35136 502.46656 66.56 444.12416 66.56 384s11.79136-118.46144 35.01568-173.37856c22.43584-53.0432 54.5536-100.67968 95.46752-141.58336 40.89856-40.90368 88.53504-73.02656 141.57824-95.4624C393.53856-49.65376 451.87584-61.44 512-61.44c60.1344 0 118.46144 11.78624 173.39392 35.01568 53.03808 22.43584 100.67968 54.5536 141.57824 95.4624 40.9088 40.90368 73.02144 88.54016 95.4624 141.58336C945.65888 265.53856 957.44 323.87584 957.44 384s-11.78112 118.46656-35.01056 173.38368z m-57.10848-322.63168c-19.30752-45.65504-46.97088-86.66624-82.18112-121.88672a382.43328 382.43328 0 0 0-121.8816-82.18112c-47.26784-19.98848-97.48992-30.12608-149.26336-30.12608-51.76832 0-101.98016 10.13248-149.248 30.12608-45.66016 19.31264-86.66112 46.96064-121.87648 82.18112a382.3104 382.3104 0 0 0-82.18112 121.88672c-19.9936 47.26784-30.1312 97.47968-30.1312 149.248s10.13248 101.98528 30.1312 149.248a382.17216 382.17216 0 0 0 82.18112 121.88672 382.26944 382.26944 0 0 0 121.87648 82.18112c47.26784 19.98848 97.47968 30.1312 149.248 30.1312 51.77344 0 101.98016-10.1376 149.25312-30.1312 45.66016-19.31264 86.66112-46.96064 121.8816-82.18112a382.17216 382.17216 0 0 0 82.18112-121.88672c19.99872-47.26272 30.1312-97.47968 30.1312-149.248s-10.13248-101.98016-30.12096-149.248zM549.77024 315.53024c-2.56-27.95008-20.33152-41.0112-37.87264-41.0112-13.0304 0 0 0 0 0-16.66048 3.13856-29.59872 10.24512-35.28192 38.51264l-22.92224 264.25856c0 26.56256 32.29184 50.06848 59.68896 50.06848 27.40224 0 56.91392-24.58112 56.91392-51.0976l-20.52608-260.73088zM512 239.9488c-27.40224 0-49.6384-22.21056-49.6384-49.6384 0-27.43296 22.21056-49.67424 49.6384-49.67424 27.42272 0 49.64352 22.24128 49.64352 49.67424-0.00512 27.392-22.22592 49.6384-49.64352 49.6384z" horiz-adv-x="1024" />
<glyph glyph-name="net" unicode="&#58887;" d="M512 814.46912c-124.22144 0-235.9808-53.1968-314.63424-137.6256-0.36864 0.28672-0.82944 0.53248-1.21856 0.8192L186.368 664.7296C121.22112 589.2608 81.53088 491.27424 81.53088 384c0-107.80672 40.13056-206.2336 105.86112-281.86624l8.7552-11.55584c0.33792 0.26624 0.75264 0.4864 1.09568 0.73216 78.65344-84.5312 190.464-137.7792 314.75712-137.7792 237.3632 0 430.46912 193.12128 430.46912 430.46912 0 237.37344-193.12128 430.46912-430.46912 430.46912z m24.38144-273.69984c58.95168 2.1504 115.44064 11.3664 166.98368 26.52672 14.99136-47.68768 24.1152-101.64224 26.18368-158.93504h-193.16736V540.76928z m0 48.7424V763.16672c61.14816-11.94496 114.5856-68.38784 149.81632-150.15936-46.1312-13.2608-96.768-21.43232-149.81632-23.5008z m-48.76288 173.66016v-173.83424c-53.17632 1.63328-103.9616 9.43616-150.40512 22.28224 35.2256 82.55488 88.91392 139.53536 150.40512 151.552z m0-222.5664v-132.224H294.4512c2.06848 56.68864 10.96704 110.17728 25.69728 157.50144 51.80416-14.72512 108.4416-23.5776 167.4752-25.28256zM245.7088 408.37632h-114.176c4.85376 76.3904 32.15872 146.55488 75.53536 204.2624a470.9632 470.9632 0 0 1 66.80064-31.59552c-16.26112-52.00384-26.0864-110.34624-28.16-172.66688z m0-48.76288c2.0736-62.14656 11.84768-120.34048 28.04224-172.24704a471.36768 471.36768 0 0 1-66.85184-31.7696c-43.27936 57.63584-70.51264 127.75424-75.3664 204.01664h114.176z m48.7424 0h193.16736v-131.97312c-59.00288-1.70496-115.88096-10.01984-167.66976-24.84224-14.60224 47.1808-23.4496 100.4032-25.4976 156.81536z m193.16736-180.736v-174.04928c-61.63456 12.03712-115.42016 69.28896-150.67648 152.13568 46.42304 12.94336 97.50016 20.28544 150.6816 21.9136z m48.76288-174.04928v173.8752c53.07904-2.04288 103.936-9.79456 150.0672-23.15776-35.23584-82.08896-88.77568-138.752-150.0672-150.71744z m0 222.6432v132.1472h193.16736c-2.06848-57.05216-11.12064-110.84288-26.0096-158.40768-51.52256 15.26784-108.1856 24.0896-167.15776 26.2656z m241.90464 132.1472h114.2016c-4.92544-77.24032-32.768-148.14208-76.99456-206.19264-20.28544 11.97056-42.42432 22.528-65.87392 31.8208 16.57344 52.41344 26.5728 111.39072 28.672 174.36672z m0 48.75776c-2.0992 63.0272-12.09344 122.02496-28.6976 174.49472a462.39232 462.39232 0 0 1 65.71008 31.93856c44.31872-58.09664 72.26368-129.09568 77.16352-206.43328h-114.176z m4.608 244.1728c-15.67744-8.75008-32.2048-16.8704-49.95584-23.9104-16.50688 39.15264-37.10976 73.1648-60.66176 101.2992 41.34912-19.23584 78.8736-45.37344 110.62272-77.3888zM351.744 729.96864c-23.94112-28.60032-44.86144-63.22176-61.5168-103.18336-18.11456 6.94784-34.95936 15.04256-50.95424 23.74656C271.4112 683.42272 309.53984 710.33856 351.744 729.96352z m-112.64-612.3264a423.6544 423.6544 0 0 0 51.02592 23.74656c16.67584-40.0384 37.64736-74.70592 61.61408-103.3728-42.27584 19.69664-80.4352 46.63808-112.64 79.62624z m433.17248-79.60576c23.552 28.16 44.15488 62.19776 60.68736 101.3504a421.9392 421.9392 0 0 0 50.10432-23.79264c-31.7952-32.08704-69.37088-58.27072-110.79168-77.55776z" horiz-adv-x="1024" />
<glyph glyph-name="edit" unicode="&#59025;" d="M688.814 719.211l158.39-158.39-448.018-448.019-158.39 158.39zM192 64v158.4l158.4-158.4zM895.2 608.8l-158.4 158.4 46.8 46.8c24 24 63.3 24 87.4 0l71-71c24-24 24-63.3 0-87.4l-46.8-46.8zM128 0h768v-64h-768zM64 128h64v-192h-64zM895.3 128h64v-192h-64z" horiz-adv-x="1024" />
<glyph glyph-name="suo" unicode="&#59081;" d="M828.691531 487.055294h-61.229077V679.855214C767.564844 799.036896 679.919208 896 572.205179 896H452.613939c-107.714029 0-195.359664-96.963104-195.359664-216.144786v-192.79992h-61.945806c-42.491751 0-77.09949-38.293771-77.09949-85.29067v-444.473953c0-46.9969 34.607739-85.290671 77.09949-85.290671H828.691531c42.491751 0 77.09949 38.293771 77.09949 85.290671V401.764624c0 47.09929-34.607739 85.290671-77.09949 85.29067z m-482.358164 192.79992c0 64.812719 47.713629 117.543446 106.280572 117.543446h119.59124c58.566943 0 106.280572-52.730727 106.280572-117.543446v-192.79992h-332.152384V679.855214z" horiz-adv-x="1024" />
<glyph glyph-name="default" unicode="&#59007;" d="M512.020 822.323c-239.75 0-434.093-195.721-434.093-437.159s194.342-437.159 434.093-437.159 434.112 195.721 434.112 437.159-194.362 437.159-434.112 437.159zM729.087 372.55c0-18.589-14.961-33.649-33.397-33.649h-367.321c-18.434 0-33.377 15.058-33.377 33.649v33.61c0 18.59 14.941 33.649 33.377 33.649h367.321c18.435 0 33.397-15.058 33.397-33.649v-33.61z" horiz-adv-x="1024" />
<glyph glyph-name="xiazai1" unicode="&#59052;" d="M896 291.2l-384-353.28-384 353.28h256V766.08h256v-474.88z" horiz-adv-x="1024" />
<glyph glyph-name="chexiao" unicode="&#58967;" d="M530.496 524.928h-6.144V661.632c0 51.136-29.312 72.448-65.472 43.328L122.816 434.624c-36.096-28.992-36.096-76.48 0.128-105.472l333.504-267.648c36.16-28.992 67.968 0.448 67.968 43.584v144.256h50.496c145.856 0 257.152-62.976 325.248-184.576 13.376-22.08 27.456-17.28 27.456 0-2.944 216.576-186.368 460.16-397.12 460.16z" horiz-adv-x="1024" />
<glyph glyph-name="qq" unicode="&#59015;" d="M960.1 384c0 247.4-200.5 447.9-447.9 447.9S64.3 631.4 64.3 384s200.5-447.9 447.9-447.9S960.1 136.7 960.1 384zM690.8 450.8c0 185.5-96.1 241.6-178.6 241.6s-180.5-55.3-180.5-241.6c0 0-62.6-140.2-62.6-207.5s56.5 32.7 56.5 32.7-1.8-67.2 56.5-113.8c0 0-70.8-28.4-47.3-42.3 23.5-13.9 170.6-2.4 170.6-2.4h10s142.1-9.1 169.1 0-16.4 38.7-44.4 44.7c56.6 50.4 56.6 113.8 56.6 113.8s55.9-101.8 55.9-34.4-61.8 209.2-61.8 209.2z" horiz-adv-x="1024" />
<glyph glyph-name="biaoqian" unicode="&#59215;" d="M1024 117.24800000000005l0 534.2208-1024 0 117.76-278.528-117.76-255.6928z" horiz-adv-x="1024" />
<glyph glyph-name="dashujucunchu" unicode="&#59000;" d="M975.644444 233.24444400000004V534.7555560000001c28.444444 14.222222 51.2 42.666667 51.2 76.8 0 48.355556-36.977778 85.333333-85.333333 85.333333-19.911111 0-39.822222-8.533333-54.044444-19.911111L594.488889 830.577778C585.955556 867.555556 551.822222 896 512 896c-42.666667 0-79.644444-31.288889-85.333333-73.955556L145.066667 671.288889C130.844444 688.355556 108.088889 696.8888890000001 85.333333 696.8888890000001c-48.355556 0-85.333333-36.977778-85.333333-85.333333 0-39.822222 28.444444-73.955556 65.422222-82.488889v-290.133334C28.444444 230.39999999999998 0 196.26666699999998 0 156.44444399999998c0-48.355556 36.977778-85.333333 85.333333-85.333333 22.755556 0 45.511111 8.533333 59.733334 25.6l281.6-150.755555c5.688889-42.666667 39.822222-73.955556 85.333333-73.955556 39.822222 0 73.955556 28.444444 82.488889 65.422222l290.133333 153.6c14.222222-11.377778 34.133333-19.911111 54.044445-19.911111 48.355556 0 85.333333 36.977778 85.333333 85.333333 0 34.133333-19.911111 62.577778-48.355556 76.8z m-96.711111-14.222222l-133.688889 65.422222v199.111112l133.688889 65.422222c11.377778-11.377778 22.755556-17.066667 36.977778-19.911111v-290.133334c-14.222222-2.844444-25.6-11.377778-36.977778-19.911111zM853.333333 600.177778l-139.377777-68.266667L540.444444 631.4666669999999V731.022222c19.911111 8.533333 36.977778 22.755556 45.511112 39.822222l267.377777-142.222222v-28.444444zM520.533333 190.57777799999997l-170.666666 96.711111v193.422222l170.666666 96.711111 170.666667-96.711111v-193.422222l-170.666667-96.711111zM483.555556 731.022222v-105.244444l-167.822223-96.711111L170.666667 600.177778V611.555556v8.533333l270.222222 145.066667c8.533333-17.066667 25.6-28.444444 42.666667-34.133334zM145.066667 548.977778l147.911111-73.955556v-184.888889l-147.911111-73.955555c-5.688889 5.688889-14.222222 11.377778-22.755556 17.066666V534.7555560000001c8.533333 2.844444 14.222222 8.533333 22.755556 14.222222zM170.666667 167.822222l145.066666 73.955556 167.822223-96.711111v-105.244445c-17.066667-5.688889-34.133333-17.066667-42.666667-34.133333l-270.222222 142.222222V156.44444399999998v11.377778z m369.777777-130.844444v99.555555l176.355556 99.555556 139.377778-68.266667v-11.377778c0-5.688889 0-11.377778 2.844444-17.066666l-267.377778-142.222222c-14.222222 19.911111-31.288889 34.133333-51.2 39.822222z" horiz-adv-x="1026" />
<glyph glyph-name="mstest" unicode="&#59014;" d="M552.8 384l291.8 198.8-299.4 175.8-300.2-163z m167.2-78.8c61.6 0 104 12.8 116 34.4l1 11.6 1.4 14.4 12.4 137.4 4.6 50.6-287.6-196v-34c56.2-11.8 108.6-18.4 152.2-18.4z m11-77.4c-49.8 0-105 6-163.2 17.6v-231.2l251.4 221.6c-25.8-5.2-55.2-8-88.2-8zM236 479.4c8.4-9.2 18.4-18.6 30-27.8 53.4-43.2 132.4-81.2 222.4-107.6 16.6-4.8 33-9.2 49.4-13.2V358l-308 211.4 6.2-90z m230.8-209.2c-83.2 24.2-160.2 58.4-223.4 98.2l7.8-114.2 286.4-241.2V251.8c-23.2 5.2-46.8 11.4-70.8 18.4zM848.4 464.4l-4.2-42.2c21.6-30.8 30.4-60.4 23-85.4-22.6-77.6-192-78.8-387.4-21.8-195 57-324.8 164-302.2 241.6 11.2 38.4 57.6 62.4 125.2 70l45.6 24.8c-119 6.4-207.6-18.2-224-74-25.2-86.6 133.4-214.8 350.8-278.4 217.6-63.4 410.8-54 436 32.4 11.4 38.8-13 86.4-62.8 133z" horiz-adv-x="1024" />
<glyph glyph-name="tianjiachengyuan" unicode="&#59034;" d="M543.744-39.936h-422.4c-7.68 0-15.36 1.536-22.016 5.12-9.728 4.608-13.824 14.336-13.824 25.088v93.696c0 3.072 1.024 6.144 2.048 8.704 54.784 128.512 148.992 213.504 284.16 251.904 4.608 1.024 9.728 1.024 14.336-0.512 61.952-21.504 123.392-21.504 184.832 0.512 3.584 1.024 8.192 1.536 11.264 0.512 19.968-5.632 39.424-11.264 73.728-25.6 0 0 55.808 36.352 52.736 39.424-25.6 24.064-58.368 28.672-60.416 29.696 3.072 2.56 5.12 4.608 7.68 7.168 54.784 49.664 86.016 111.104 92.672 184.832 11.776 131.072-71.68 252.928-198.656 288.768-15.36 4.096-30.72 5.632-46.592 8.704-2.048 0.512-4.096 1.024-5.632 1.536h-39.424c-14.336-2.56-28.672-3.584-43.008-7.68-109.056-29.696-178.176-100.352-202.24-210.432-21.504-97.792 6.144-183.296 75.776-255.488 5.632-6.144 12.288-11.264 18.432-16.896-12.8-5.632-25.6-10.752-37.888-16.896-114.176-56.832-193.536-145.408-240.64-263.68-1.024-2.048-2.048-4.608-3.072-6.656v-122.368c1.024-4.608 2.048-9.216 3.584-13.824 11.264-35.328 34.816-57.344 71.68-65.024 1.024 0 2.048-1.024 3.072-1.536 158.72-3.072 363.52-1.536 440.32-1.536l-0.512 62.464zM266.24 603.648c-0.512 117.248 94.208 213.504 210.944 214.016 116.736 0.512 211.456-95.744 211.456-214.016 0-118.272-94.72-214.528-210.944-215.04-116.736 0-210.944 96.256-211.456 215.04zM736.768 153.6v195.584h60.928v-195.584h198.144v-61.952h-198.144v-196.608h-60.928v196.608h-198.144v61.952h198.144z" horiz-adv-x="1024" />
<glyph glyph-name="triangle" unicode="&#58880;" d="M322.392 805.875l421.803-421.898-421.803-421.852v843.75z" horiz-adv-x="1024" />
@ -158,6 +179,9 @@ Created by iconfont
<glyph glyph-name="chenggong" unicode="&#59019;" d="M512 896C229.2224 896 0 666.7776 0 384s229.2224-512 512-512 512 229.2224 512 512S794.7776 896 512 896z m244.667733-422.0416l-263.68-263.662933c-6.656-6.673067-15.394133-10.001067-24.132266-10.001067s-17.4592 3.328-24.132267 10.001067l-143.240533 143.240533c-12.032 12.032-14.984533 31.402667-5.0688 45.2096a34.133333 34.133333 0 0 0 51.985066 4.386133l96.3072-96.3072a34.133333 34.133333 0 0 1 48.264534 0l216.746666 216.7296a34.133333 34.133333 0 0 0 51.985067-4.386133c9.949867-13.806933 6.980267-33.1776-5.034667-45.2096z" horiz-adv-x="1024" />
<glyph glyph-name="sandian" unicode="&#59128;" d="M510.9248-17.6128m-110.3872 0a110.3872 110.3872 0 1 1 220.7744 0 110.3872 110.3872 0 1 1-220.7744 0ZM510.9248 390.8608m-110.3872 0a110.3872 110.3872 0 1 1 220.7744 0 110.3872 110.3872 0 1 1-220.7744 0ZM510.9248 785.6128m-110.3872 0a110.3872 110.3872 0 1 1 220.7744 0 110.3872 110.3872 0 1 1-220.7744 0Z" horiz-adv-x="1024" />
<glyph glyph-name="base" unicode="&#59011;" d="M25.28 567.50933334l474.88-230.592a25.6 25.6 0 0 1 12.352-2.56 41.472 41.472 0 0 1 13.44 2.56L1000.768 568.53333334a27.52 27.52 0 0 1 16 24.96 26.624 26.624 0 0 1-17.024 25.024L524.8 850.13333334a32.256 32.256 0 0 1-25.728 0L25.28 618.45333334a28.416 28.416 0 0 1-15.424-25.472 27.52 27.52 0 0 1 15.424-25.536z m487.232 221.44l399.168-194.88-399.168-194.88-399.104 194.88L512.512 788.88533334z m498.56-576c7.68-3.52 12.8-10.688 12.8-19.84 0-9.216-5.12-16.832-12.8-20.48l-488.768-238.72a22.528 22.528 0 0 0-9.792-1.984c-3.072 0-6.208 1.024-9.28 2.048L13.952 171.66933333999998a21.44 21.44 0 0 0-12.8 19.84c0 9.216 5.12 16.896 12.8 20.48l82.944 40.32c6.72 2.56 13.44 2.56 19.584 0l19.584-9.216c7.68-4.096 12.8-11.776 12.8-20.416 0-9.152-5.12-16.832-12.8-20.416l-21.632-10.24 394.496-191.744a13.312 13.312 0 0 1 10.816 0l392.96 192.832-22.144 10.688a21.44 21.44 0 0 0-12.928 19.84c0 9.216 5.12 16.896 12.928 20.48l19.008 9.152c5.12 2.56 12.928 2.56 18.56 0l82.944-40.32zM12.928 371.73333333999994a22.848 22.848 0 0 0-12.8 19.84c0 9.216 5.12 16.832 12.8 20.48l82.944 40.256c6.72 2.56 13.44 2.56 19.584 0l19.52-9.216c7.744-4.032 12.928-11.712 12.928-20.416 0-9.152-5.12-16.832-12.928-20.352l-21.568-10.24 395.008-191.808a13.312 13.312 0 0 1 10.816 0l392.96 192.832-22.144 10.752a22.144 22.144 0 0 0 0 40.32L909.056 453.33333334c5.12 2.56 12.928 2.56 18.56 0l82.944-40.32c7.68-3.584 12.8-10.688 12.8-19.84 0-9.216-5.12-16.896-12.8-20.48L521.28 133.97333333999995a22.528 22.528 0 0 0-9.792-2.048 30.336 30.336 0 0 0-9.28 2.048L12.928 371.60533334z" horiz-adv-x="1024" />
@ -203,6 +227,9 @@ Created by iconfont
<glyph glyph-name="zhiliangfenxi" unicode="&#59021;" d="M928 745.386667h-384V810.666667h-64v-65.28h-384a32.853333 32.853333 0 0 1-32-32.853334v-522.666666a32.426667 32.426667 0 0 1 32-32.426667h384v-51.626667l-152.746667-91.306666 32-57.173334 143.786667 85.333334h19.2l144.213333-85.333334 32 57.173334-154.453333 91.306666v51.626667h384a32.426667 32.426667 0 0 1 32 32.426667V712.533333a32.853333 32.853333 0 0 1-32 32.853334zM896 222.72H128V680.106667h768z m-105.813333 392.106667l42.666666-49.066667-316.586666-276.906667-164.266667 140.373334-118.186667-101.12-42.666666 49.92L352.853333 512l162.986667-140.373333z" horiz-adv-x="1024" />
<glyph glyph-name="shangchuantupian1" unicode="&#59389;" d="M1020.0064 896H78.475636C35.309382 896 0 860.392727 0 816.872727v-791.272727c0-43.52 35.309382-79.127273 78.466327-79.127273H745.378909v79.127273H117.694836c-23.542691 0-39.228509 19.781818-39.228509 39.563636v712.145455c0 19.781818 15.685818 39.563636 39.228509 39.563636h863.083055c23.542691 0 39.228509-19.781818 39.228509-39.563636V262.981818H1098.472727V816.872727c0 43.52-35.309382 79.127273-78.466327 79.127273z m-84.126255-618.607709c-7.838255 7.875491-15.6672 11.803927-27.424581 11.803927-11.748073 0-19.586327-3.928436-27.415273-11.803927L771.351273 167.191273c-15.676509-15.750982-15.676509-39.358836 0-55.109818 15.6672-15.732364 39.172655-15.732364 54.839854 0l43.101091 43.296581v-244.0192c0-19.679418 15.657891-39.358836 39.163346-39.358836s39.172655 15.741673 39.172654 39.358836V155.378036l47.010909-47.225018c15.6672-15.741673 39.172655-15.741673 54.849164 0 15.6672 15.732364 15.6672 39.358836 0 55.100509l-113.608146 114.138764z m-513.182254 295.191273c19.586327 43.287273 7.838255 94.459345-23.505455 129.880436-35.253527 35.421091-90.093382 43.287273-133.185163 27.554909C222.906182 710.320873 195.490909 663.095855 195.490909 615.861527c0-62.966691 50.920727-114.129455 113.608146-114.129454 47.010909 0 94.021818 27.5456 113.598836 70.842182z m-148.852364 43.287272c0 11.813236 3.909818 19.679418 11.748073 27.554909 3.909818 11.803927 15.6672 15.741673 27.415273 15.741673 19.595636 0 39.181964-15.741673 39.181963-35.421091s-15.676509-39.358836-35.262836-43.287272c-23.505455 0-43.091782 15.732364-43.091782 35.411781zM142.689745 135.093527c15.7696-15.6672 39.433309-15.6672 55.20291 0l165.590109 164.463709L501.480727 162.499491c3.947055-3.909818 3.947055-3.909818 7.894109-3.909818 15.7696-7.838255 31.5392-7.838255 47.3088 3.909818l390.330182 387.658473c15.7696 15.6672 15.7696 39.163345 0 54.830545-15.778909 15.657891-39.433309 15.657891-55.202909 0l-362.728727-360.261818-137.988655 140.976873-3.947054 3.909818c-15.7696 11.748073-35.486255 11.748073-51.255855-3.909818L138.761309 189.905455c-11.822545-15.6672-11.822545-39.163345 3.937746-54.830546z" horiz-adv-x="1098" />
<glyph glyph-name="dengluIpjiankong" unicode="&#59012;" d="M924.208 769.824H100.832a35.936 35.936 0 0 1-35.968-35.968v-567.568a36 36 0 0 1 35.968-36h823.376a36 36 0 0 1 35.952 36V733.856a35.952 35.952 0 0 1-35.952 35.968z m-54.08-328.64v-0.368C801.264 302.16 662.272 213.6 512.512 213.6c-149.856 0-289.152 88.688-357.616 227.696-4.336 8.16-3.952 18.048 0 26.016C223.36 605.968 362.672 694.56 512.512 694.56c149.744 0 288.752-88.592 357.616-227.344a28.736 28.736 0 0 0 0-26.032zM924.208 833.776H100.832C46.672 833.776 2.64 790.56 1.072 736.784v-573.44c1.568-53.744 45.616-96.992 99.76-96.992h379.712v-63.936H224.72a31.936 31.936 0 0 1-31.968-32c0-17.664 14.288-31.936 31.968-31.936h575.568a31.936 31.936 0 0 1 31.968 31.936c0 17.728-14.304 32-31.968 32H544.496v63.936h379.696c55.152 0 99.92 44.8 99.92 99.92V733.856a99.872 99.872 0 0 1-99.904 99.92z m35.952-667.488a36 36 0 0 0-35.952-36H100.832a36 36 0 0 0-35.968 36V733.856a35.936 35.936 0 0 0 35.968 35.968h823.376a35.952 35.952 0 0 0 35.952-35.968v-567.568zM689.392 582.192c-53.728 34.224-114.864 52.24-176.88 52.24-62 0-123.248-18.016-177.088-52.24a349.728 349.728 0 0 1-119.472-127.936 351.12 351.12 0 0 1 119.568-128.24c53.728-34.272 114.88-52.336 176.992-52.336 62.016 0 123.136 18.064 176.88 52.272a354.56 354.56 0 0 1 119.872 128.112c-28.848 52.32-70 96.496-119.872 128.128zM512.512 322.16c-70.56 0-127.904 57.376-127.904 127.808 0 70.56 57.344 128 127.904 128 70.544 0 127.904-57.344 127.904-128 0-70.432-57.36-127.808-127.904-127.808zM512.512 514.016a64.032 64.032 0 0 1-63.952-64.048 63.968 63.968 0 0 1 127.904 0 64.096 64.096 0 0 1-63.952 64.048zM512.512 694.56c-149.856 0-289.152-88.592-357.616-227.248-3.952-7.968-4.336-17.856 0-26.016C223.36 302.288 362.672 213.6 512.512 213.6c149.744 0 288.752 88.56 357.616 227.232v0.368a28.704 28.704 0 0 1 0 26.016C801.264 605.968 662.272 694.56 512.512 694.56z m176.88-368.608c-53.728-34.208-114.864-52.272-176.88-52.272-62.096 0-123.248 18.064-176.992 52.336a350.992 350.992 0 0 0-119.568 128.24 349.728 349.728 0 0 0 119.472 127.936c53.84 34.224 115.088 52.24 177.088 52.24 62.016 0 123.136-18.016 176.88-52.24 49.872-31.632 91.024-75.792 119.872-128.112a354.48 354.48 0 0 0-119.872-128.128zM512.512 577.968c-70.56 0-127.904-57.44-127.904-128 0-70.432 57.344-127.808 127.904-127.808 70.544 0 127.904 57.376 127.904 127.808 0 70.656-57.36 128-127.904 128z m0-191.824a63.968 63.968 0 0 0-63.952 63.824 64.032 64.032 0 0 0 63.952 64.048 64.096 64.096 0 0 0 63.952-64.048 63.968 63.968 0 0 0-63.952-63.824z" horiz-adv-x="1024" />
@ -503,6 +530,9 @@ Created by iconfont
<glyph glyph-name="shixundaibeijing" unicode="&#59020;" d="M512.3 383.3m-415.7 0a415.7 415.7 0 1 1 831.4 0 415.7 415.7 0 1 1-831.4 0ZM395 554.6c-9.2 0-16.7-7.5-16.7-16.7v-338.4c0-9.2 7.5-16.7 16.7-16.7s16.7 7.5 16.7 16.7V537.9c0.1 9.2-7.4 16.7-16.7 16.7zM277.7 491.9c-9.2 0-16.7-7.5-16.7-16.7v-200.5c0-9.2 7.5-16.7 16.7-16.7s16.7 7.5 16.7 16.7V475.2c0 9.3-7.4 16.7-16.7 16.7zM512.3 621.4c-9.2 0-16.7-7.5-16.7-16.7v-442.8c0-9.2 7.5-16.7 16.7-16.7s16.7 7.5 16.7 16.7V604.7c0 9.2-7.5 16.7-16.7 16.7zM629.6 554.6c-9.2 0-16.7-7.5-16.7-16.7v-338.4c0-9.2 7.5-16.7 16.7-16.7s16.7 7.5 16.7 16.7V537.9c0 9.2-7.5 16.7-16.7 16.7zM746.8 491.9c-9.2 0-16.7-7.5-16.7-16.7v-200.5c0-9.2 7.5-16.7 16.7-16.7s16.7 7.5 16.7 16.7V475.2c0 9.3-7.4 16.7-16.7 16.7z" horiz-adv-x="1024" />
<glyph glyph-name="tianjiadaohang" unicode="&#58884;" d="M448 896h128v-1024H448V896zM0 448h1024v-128H0V448z" horiz-adv-x="1024" />
</font>

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 188 KiB

@ -26,7 +26,7 @@ $(function(){
var nRow = 0;
//var nCol = 0;
lab.live('mousedown touchstart',function(){
$('#game_webssh').css('pointer-events', 'none')
$('#contentIframe').css('pointer-events', 'none')
dragging = true;
leftOffset = $(".labelN").offset().left;
wrapWidth = $(".labelN").width();
@ -35,7 +35,7 @@ $(function(){
);
cen.live('mousedown',function(){
// 使得iframe不捕获事件
$('#game_webssh').css('pointer-events', 'none')
$('#contentIframe').css('pointer-events', 'none')
flag = true;
topOffset = $(".centerH").offset().top;
wrapHeight = $(".centerH").height();
@ -111,7 +111,7 @@ $(function(){
doc.live("mouseup touchend", function(e) {
// 使得iframe可以继续捕获事件
$('#game_webssh').css('pointer-events', 'inherit')
$('#contentIframe').css('pointer-events', 'inherit')
flag = false;
dragging = false;
e.cancelBubble = true;

@ -153,7 +153,10 @@ var EXPAND = 0; // 放大
var SHRINK = 1; // 缩小
var repositoryTabHeight = 40
function _resizeTpiPanel = () {
$("#game_left_contents").width('400px');
$("#game_right_contents").width( $(".labelN").width() - 400 + 'px');
}
$(function(){
function update_rows_and_cols(rows) {
var _iframe = document.getElementById("game_webssh");
@ -177,6 +180,7 @@ $(function(){
//var nCol = 0;
lab.live('mousedown touchstart',function(){
$('#game_webssh').css('pointer-events', 'none')
$('#contentIframe').css('pointer-events', 'none')
dragging = true;
leftOffset = $(".labelN").offset().left;
wrapWidth = $(".labelN").width();
@ -186,6 +190,7 @@ $(function(){
cen.live('mousedown ',function(){
// 使得iframe不捕获事件
$('#game_webssh').css('pointer-events', 'none')
$('#contentIframe').css('pointer-events', 'none')
flag = true;
topOffset = $(".centerH").offset().top;
wrapHeight = $(".centerH").height();
@ -262,6 +267,8 @@ $(function(){
doc.live("mouseup touchend", function(e) {
// 使得iframe可以继续捕获事件
$('#game_webssh').css('pointer-events', 'inherit')
$('#contentIframe').css('pointer-events', 'inherit')
flag = false;
dragging = false;
e.cancelBubble = true;

File diff suppressed because one or more lines are too long

@ -181,9 +181,13 @@ class Index extends Component {
challenge={context.challenge}
myshixun={context.myshixun}
shixun={context.shixun}
vnc_url={context.vnc_url}
zip_path={context.zip_path}
loading={context.loading}
discusses_count={context.discusses_count}
hide_code={context.hide_code}
discusses_count={context.discusses_count}
hide_code={context.hide_code}
readGameAnswer={context.readGameAnswer}
@ -197,7 +201,7 @@ class Index extends Component {
time_limit={context.time_limit}
resetTestSetsExpandedArray={context.resetTestSetsExpandedArray}
resetTestSetsExpandedArray={context.resetTestSetsExpandedArray}
onRunCodeTestFinish={context.onRunCodeTestFinish}
onRunChooseTestFinish={context.onRunChooseTestFinish}
testSetUnlock={context.testSetUnlock}

@ -17,17 +17,15 @@ import Button from 'material-ui/Button';
import './tpiPage.css';
import './tpiPageForMobile.css';
const $ = window.$;
const showIframeContent = window.location.search.indexOf('vnc=1') != -1;
// const showIframeContent = window.location.search.indexOf('vnc=1') != -1;
class MainContent extends Component {
componentDidMount() {
// ios下图标位置有问题
if (!showIframeContent) {
setTimeout(()=>{
if (window.$('.b-label>.resize-helper').position().top < 100) {
window.$('.b-label>.resize-helper').css('top', '200px')
}
}, 4000)
}
setTimeout(()=>{
if (window.$('.b-label>.resize-helper').position().top < 100) {
window.$('.b-label>.resize-helper').css('top', '200px')
}
}, 4000)
$("body").css("padding-right","0px!important")
}
onResizeButtonClick = () => {
@ -35,7 +33,7 @@ class MainContent extends Component {
}
render() {
const { challenge, output_sets, onRunCodeTest, latest_output, record, st, readRepoTimeout,
onTestSetHeaderClick, loading, codeLoading } = this.props
onTestSetHeaderClick, loading, codeLoading, shixun, vnc_url } = this.props
// if (output_sets && output_sets.test_sets) {
// const test_sets_array = JSON.parse("[" + output_sets.test_sets + "]");
@ -48,6 +46,7 @@ class MainContent extends Component {
} else {
games_repository_contents_style = {overflow: 'hidden', height: '445px'}
}
const showIframeContent = shixun && shixun.vnc == true
return (
<div className="page--body -margin-t-64 -flex">
<div className="-layout -stretch -fit labelN" id="game_show_content">
@ -68,19 +67,19 @@ class MainContent extends Component {
<div className="split-panel--second -layout -vertical -flex -relative -flex-basic50"
id="game_right_contents" style={{width: '996px'}}>
{/*
iframe模式下需要这两个样式来调整
.page--body { z-index: 9999; }
.resize-helper { top: 10px }
iframe模式下可以使用样式控制不接收鼠标事件
注意 page--body 不能设置index 7999 弹出框的index才1300
.page--body { z-index: ${showIframeContent ? '7999': '1'} ; }
.b-label>.resize-helper { top: ${showIframeContent ? '10px': '50%'} }
*/}
<style>{`
#contentIframe {
height: 100%;
background: #fff;
}
.page--body { z-index: ${showIframeContent ? '7999': '1'} ; }
.b-label>.resize-helper { top: ${showIframeContent ? '10px': '50%'} }
`}</style>
{ showIframeContent ? <iframe src="http://106.75.27.125:42288/vnc.html" id="contentIframe" ></iframe> :
{ showIframeContent ? <iframe src={vnc_url ||"http://106.75.27.125:42288/vnc.html"} id="contentIframe" ></iframe> :
<React.Fragment>
{/* 旧版本、评测等待提示--更新提示块*/}
{/*<div className="tip-panel-animate clearfix user_bg_shadow bor-grey-e">

@ -229,6 +229,10 @@ class MainContentContainer extends Component {
// arg_path 点击文件目录树时传入的点击节点对应的path
fetchRepositoryCode( props, arg_path, type, isRetry) {
const { challenge, showSnackbar, game, shixun, hide_code } = props ? props : this.props;
if (shixun.vnc == true) {
// vnc模式下不需要加载代码
return true;
}
if (hide_code) { // 隐藏code的实训
this.setState({ codeLoading: false });
return;
@ -267,6 +271,15 @@ class MainContentContainer extends Component {
// this._cancel = null;
}
const that = this;
// test
// console.log('---- fetch code')
// const _code = '"#include<math.h>\n\n// \u6c42n\u7684\u7b97\u672f\u5e73\u65b9\u6839\ndouble SquareRoot(float n)\n{\n // \u8bf7\u5728\u6b64\u6dfb\u52a0\u4ee3\u7801\uff0c\u8865\u5168\u51fd\u6570SquareRoot\n /********** Begin *********/\n\n\n /********** End **********/\n}"'
// this.oldRepositoryCode = _code;
// this.updateRepositoryCode(_code, updateCodeMirror)
// return
this.setState({ gameBuilding: false, codeLoading: true });
axios.get(fetchRepoCodeUrl, {
withCredentials: true,

@ -296,7 +296,7 @@ class CodeRepositoryView extends Component {
const { repositoryCode, onRepositoryCodeUpdate, showFilesDrawer, drawerOpen, loadingFirstRepoFiles
, challenge, evaluateViewExpanded, onRepositoryViewExpand, codeStatus ,
showResetCodeDialog, showResetPassedCodeDialog, tabIndex, tabIndexChange, game, shixun, isEditablePath, currentPath
, showSettingDrawer, hide_code } = this.props;
, showSettingDrawer, hide_code, myshixun_manager, zip_path } = this.props;
// onRequestChange={(drawerOpen) => showFilesDrawer(drawerOpen)}
/*
@ -402,12 +402,21 @@ class CodeRepositoryView extends Component {
</React.Fragment>
}
{ !shixun.code_hidden && tabIndex === 0 && <Tooltip title={ "文件目录"} disableFocusListener={true}>
<a href="javascript:void(0)" className="iconButton" onClick={showFilesDrawer.bind(this, true)} >
<i className="iconfont icon-wenjian font-18 "></i>
</a>
</Tooltip> }
{/* onClick={showFilesDrawer.bind(this, true)} target='_blank'*/}
{ myshixun_manager == true && <Tooltip title={ "下载代码"} disableFocusListener={true}>
<a href={zip_path || `/myshixuns/${myshixun.identifier}/archive`} className="iconButton" >
<i className="iconfont icon-xiazai1 font-18 "></i>
</a>
</Tooltip> }
<span id="return_last_code">
</span>

Loading…
Cancel
Save