diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d17059231..e7b4bdac6 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -239,7 +239,7 @@ class ApplicationController < ActionController::Base uid_logger("user_setup: " + (User.current.logged? ? "#{User.current.try(:login)} (id=#{User.current.try(:id)})" : "anonymous")) if !User.current.logged? && Rails.env.development? - User.current = User.find 8686 + User.current = User.find 1 end diff --git a/app/controllers/concerns/render_expand.rb b/app/controllers/concerns/render_expand.rb index 4fd77c285..b0f26f43e 100644 --- a/app/controllers/concerns/render_expand.rb +++ b/app/controllers/concerns/render_expand.rb @@ -14,7 +14,7 @@ module RenderExpand kit.stylesheets << Rails.root.join('app/templates', path) end - send_data kit.to_pdf, filename: options[:filename], type: 'application/pdf' + send_data kit.to_pdf, filename: options[:filename], disposition: options[:disposition] || 'attachment', type: 'application/pdf' end end end \ No newline at end of file diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index e92c3b266..781ede214 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1291,7 +1291,7 @@ class ExercisesController < ApplicationController normal_status(0,"正在下载中") else set_export_cookies - render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets + render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false end end diff --git a/app/controllers/files_controller.rb b/app/controllers/files_controller.rb index 2cfa61cc9..bcfed25dd 100644 --- a/app/controllers/files_controller.rb +++ b/app/controllers/files_controller.rb @@ -260,7 +260,12 @@ class FilesController < ApplicationController return normal_status(-2, "该课程下没有id为 #{params[:id]}的资源") if @file.nil? return normal_status(403, "您没有权限进行该操作") if @user != @file.author && !@user.teacher_of_course?(@course) && !@file.public? - + @is_pdf = false + file_content_type = @file.content_type + file_ext_type = File.extname(@file.filename).strip.downcase[1..-1] + if (file_content_type.present? && file_content_type.downcase.include?("pdf")) || (file_ext_type.present? && file_ext_type.include?("pdf")) + @is_pdf = true + end @attachment_histories = @file.attachment_histories end diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb index 828198def..c7a598a43 100644 --- a/app/controllers/games_controller.rb +++ b/app/controllers/games_controller.rb @@ -498,44 +498,41 @@ class GamesController < ApplicationController rescue Exception => e # 思路: 异常首先应该考虑去恢复 # retry为1表示已经轮训完成后还没有解决问题,这个时候需要检测异常 - if params[:retry].to_i == 1 - begin - # 如果模板没有问题,则通过中间层检测实训仓库是否异常 - # 监测版本库HEAD是否存在,不存在则取最新的HEAD - gitUrl = repo_url @myshixun.repo_path - gitUrl = Base64.urlsafe_encode64(gitUrl) - shixun_tomcat = edu_setting('cloud_bridge') - rep_params = {:tpiID => "#{@myshixun.id}", :tpiGitURL => "#{gitUrl}"} - # 监测版本库HEAD是否存在,不存在则取最新的HEAD - uri = "#{shixun_tomcat}/bridge/game/check" - res = uri_post uri, rep_params - uid_logger("repo_content to bridge: res is #{res}") - # res值:0 表示正常;-1表示有错误;-2表示代码版本库没了 - # - if status == 0 && res - # 版本库报错,修复不了 - if res['code'] == -1 || res['code'] == -2 - begin - # GitService.delete_repository(repo_path: @myshixun.repo_path) if res['code'] == -1 - project_fork(@myshixun, @shixun.repo_path, current_user.login) - rescue Exception => e - uid_logger_error("#{e.message}") - tip_exception("#{e.message}") - end + begin + # 如果模板没有问题,则通过中间层检测实训仓库是否异常 + # 监测版本库HEAD是否存在,不存在则取最新的HEAD + gitUrl = repo_url @myshixun.repo_path + gitUrl = Base64.urlsafe_encode64(gitUrl) + shixun_tomcat = edu_setting('cloud_bridge') + rep_params = {:tpiID => "#{@myshixun.id}", :tpiGitURL => "#{gitUrl}"} + # 监测版本库HEAD是否存在,不存在则取最新的HEAD + uri = "#{shixun_tomcat}/bridge/game/check" + res = uri_post uri, rep_params + uid_logger("repo_content to bridge: res is #{res}") + # res值:0 表示正常;-1表示有错误;-2表示代码版本库没了 + # + if status == 0 && res + # 版本库报错,修复不了 + if res['code'] == -1 || res['code'] == -2 + begin + # GitService.delete_repository(repo_path: @myshixun.repo_path) if res['code'] == -1 + project_fork(@myshixun, @shixun.repo_path, current_user.login) + rescue Exception => e + uid_logger_error("#{e.message}") + tip_exception("#{e.message}") end end - rescue Exception => e - uid_logger_error(e.message) + end + rescue Exception => e + uid_logger_error(e.message) - if @myshixun.shixun.try(:status) < 2 - tip_exception("代码获取异常,请检查实训模板的评测设置是否正确") - else - # 报错继续retry - tip_exception(-3, "#{e.message}") - end + if @myshixun.shixun.try(:status) < 2 + tip_exception("代码获取异常,请检查实训模板的评测设置是否正确") + else + # 报错继续retry + tip_exception(-3, "#{e.message}") end end - # 有异常,版本库获取不到代码,前端轮训15S后,调用retry == 1 tip_exception(0, e.message) end end diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index ff1ee4e96..5d1733983 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -171,6 +171,14 @@ class HomeworkCommonsController < ApplicationController @student_works = @student_works.where(user_id: group_user_ids) end + if @homework.homework_type == "group" && !params[:member_work].blank? + if params[:member_work].to_i == 1 + @student_works = @student_works.where("user_id = commit_user_id") + elsif params[:member_work].to_i == 0 + @student_works = @student_works.where("user_id != commit_user_id") + end + end + # 输入姓名和学号搜索 # TODO user_extension 如果修改 请调整 unless params[:search].blank? diff --git a/app/controllers/student_works_controller.rb b/app/controllers/student_works_controller.rb index 68d52bd74..b4677f4e3 100644 --- a/app/controllers/student_works_controller.rb +++ b/app/controllers/student_works_controller.rb @@ -4,7 +4,7 @@ class StudentWorksController < ApplicationController before_action :require_login, :check_auth before_action :find_homework, only: [:new, :create, :search_member_list, :check_project, :relate_project, - :cancel_relate_project] + :cancel_relate_project, :delete_work] before_action :find_work, only: [:shixun_work_report, :adjust_review_score, :shixun_work, :commit_des, :update_des, :adjust_score, :show, :adjust_score, :supply_attachments, :revise_attachment, :comment_list, :add_score, :add_score_reply, :destroy_score, :appeal_anonymous_score, @@ -15,12 +15,12 @@ class StudentWorksController < ApplicationController before_action :teacher_allowed, only: [:adjust_score, :adjust_review_score, :deal_appeal_score] before_action :course_student, only: [:new, :commit_des, :update_des, :create, :edit, :update, :search_member_list, :relate_project, - :cancel_relate_project, :relate_project] + :cancel_relate_project, :relate_project, :delete_work] before_action :my_work, only: [:commit_des, :update_des, :edit, :update, :revise_attachment, :appeal_anonymous_score, :cancel_appeal] - before_action :edit_duration, only: [:edit, :update] + before_action :edit_duration, only: [:edit, :update, :delete_work] before_action :end_or_late, only: [:new, :create, :search_member_list, :commit_des, :update_des] before_action :require_score_id, only: [:destroy_score, :add_score_reply, :appeal_anonymous_score, :deal_appeal_score, :cancel_appeal] @@ -60,6 +60,25 @@ class StudentWorksController < ApplicationController @members = @members.page(page).per(limit).includes(:course_group, user: :user_extension) end + def delete_work + ActiveRecord::Base.transaction do + begin + work = @homework.student_works.find_by!(user_id: params[:user_id]) + tip_exception("只有组长才能删除组员") if work.commit_user_id != current_user.id + work.update_attributes(description: nil, project_id: 0, + late_penalty: 0, work_status: 0, + commit_time: nil, update_time: nil, group_id: 0, + commit_user_id: nil, final_score: nil, work_score: nil, teacher_score: nil, teaching_asistant_score: nil) + work.attachments.destroy_all + work.tidings.destroy_all + normal_status("删除成功") + rescue Exception => e + uid_logger(e.message) + tip_exception(e.message) + end + end + end + def create student_work = @homework.student_works.find_or_create_by(user_id: current_user.id) @@ -123,8 +142,9 @@ class StudentWorksController < ApplicationController @current_user = current_user if @homework.homework_type == "group" # todo user_extension + @commit_user_id = @work.commit_user_id @work_members = @course.students.where(user_id: @homework.student_works.where(group_id: @work.group_id).pluck(:user_id)). - order("course_members.id=#{@work.user_id} desc").includes(:course_group, user: :user_extension) + order("course_members.user_id=#{@work.commit_user_id} desc").includes(:course_group, user: :user_extension) end end @@ -136,7 +156,7 @@ class StudentWorksController < ApplicationController begin @work.description = params[:description] @work.update_time = Time.now - @work.commit_user_id = current_user.id + # @work.commit_user_id = current_user.id if @work.save! Attachment.associate_container(params[:attachment_ids], @work.id, @work.class) @@ -151,7 +171,8 @@ class StudentWorksController < ApplicationController # 原成员更新描述、更新时间以及附件 @homework.student_works.where(group_id: @work.group_id, user_id: (work_user_ids & params_user_ids)).each do |work| - work.update_attributes(update_time: Time.now, description: @work.description, commit_user_id: current_user.id) + # work.update_attributes(update_time: Time.now, description: @work.description, commit_user_id: current_user.id) + work.update_attributes(update_time: Time.now, description: @work.description) work.attachments.destroy_all @work.attachments.each do |attachment| att = attachment.copy @@ -179,7 +200,7 @@ class StudentWorksController < ApplicationController stu_work.update_attributes(user_id: user_id, description: @work.description, homework_common_id: @homework.id, project_id: @work.project_id, late_penalty: @work.late_penalty, work_status: @work.work_status, commit_time: Time.now, update_time: Time.now, - group_id: @work.group_id, commit_user_id: current_user.id) + group_id: @work.group_id, commit_user_id: @work.commit_user_id) @work.attachments.each do |attachment| att = attachment.copy att.author_id = attachment.author_id @@ -460,7 +481,7 @@ class StudentWorksController < ApplicationController filename_ = "#{@use&.student_id}_#{@use&.real_name}_#{@shixun&.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" filename = Base64.urlsafe_encode64(filename_.strip) stylesheets = %w(shixun_work/shixun_work.css shared/codemirror.css) - render pdf: 'shixun_work/shixun_work', filename: filename, stylesheets: stylesheets + render pdf: 'shixun_work/shixun_work', filename: filename, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false end # 作品调分 diff --git a/app/helpers/export_helper.rb b/app/helpers/export_helper.rb index 5d36c465f..f352b1e38 100644 --- a/app/helpers/export_helper.rb +++ b/app/helpers/export_helper.rb @@ -146,8 +146,8 @@ module ExportHelper w_6 = "--" end w_7 = w.work_status == 0 ? '--' : myshixun.try(:passed_count).to_s+"/"+shixun.challenges_count.to_s - w_8 = myshixun ? myshixun.try(:passed_time) == "--" ? "--" : format_time(myshixun.try(:passed_time)) : "--" # 通关时间 - w_9 = myshixun ? (myshixun.try(:passed_count) > 0 ? myshixun.total_spend_time : '--') : "--" #总耗时 + w_8 = myshixun ? myshixun.try(:passed_time).to_s == "--" ? "--" : format_time(myshixun.try(:passed_time)) : "--" # 通关时间 + w_9 = myshixun ? (myshixun.try(:passed_count).to_i > 0 ? myshixun.total_spend_time : '--') : "--" #总耗时 w_10 = myshixun ? myshixun.output_times : 0 #评测次数 w_11 = myshixun ? myshixun.total_score : "--" #获得经验值 w_12 = w.final_score.present? ? w.final_score : 0 @@ -543,7 +543,7 @@ module ExportHelper end def format_sheet_name name - name = name.gsub(":", "-") + name = name.gsub(":", "-").gsub("/", "_") end def rename_same_file(name, index) diff --git a/app/models/myshixun.rb b/app/models/myshixun.rb index a4f05f2ce..80074df6e 100644 --- a/app/models/myshixun.rb +++ b/app/models/myshixun.rb @@ -82,7 +82,7 @@ class Myshixun < ApplicationRecord # 通关时间 def passed_time - self.status == 1 ? self.games.map(&:end_time).max : "--" + self.status == 1 ? self.games.select{|game| game.status == 2}.map(&:end_time).max : "--" end # 耗时 diff --git a/app/models/partner.rb b/app/models/partner.rb new file mode 100644 index 000000000..f2f8cca2a --- /dev/null +++ b/app/models/partner.rb @@ -0,0 +1,3 @@ +class Partner < ApplicationRecord + has_many :users +end diff --git a/app/models/searchable/course.rb b/app/models/searchable/course.rb index 93c69c9e8..5060d9ddd 100644 --- a/app/models/searchable/course.rb +++ b/app/models/searchable/course.rb @@ -21,11 +21,12 @@ module Searchable::Course def to_searchable_json { id: id, - author_name: teacher.real_name, - author_school_name: teacher.school_name, + author_name: teacher&.real_name, + author_school_name: teacher&.school_name, visits_count: visits, members_count: members_count, - is_public: is_public == 1 + is_public: is_public == 1, + first_category_url: ApplicationController.helpers.module_url(none_hidden_course_modules.first, self) } end diff --git a/app/models/user.rb b/app/models/user.rb index 07b1a564f..2cd515261 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -138,6 +138,9 @@ class User < ApplicationRecord # 视频 has_many :videos, dependent: :destroy + # 客户管理 + belongs_to :partner + # Groups and active users scope :active, lambda { where(status: STATUS_ACTIVE) } diff --git a/app/views/files/histories.json.jbuilder b/app/views/files/histories.json.jbuilder index f30cf6b1b..9dfec4fd4 100644 --- a/app/views/files/histories.json.jbuilder +++ b/app/views/files/histories.json.jbuilder @@ -1,2 +1,3 @@ +json.is_pdf @is_pdf json.partial! 'attachments/attachment_small', attachment: @file json.partial! "attachment_histories/list", attachment_histories: @attachment_histories diff --git a/app/views/homework_commons/works_list.json.jbuilder b/app/views/homework_commons/works_list.json.jbuilder index bbe71661a..08c269670 100644 --- a/app/views/homework_commons/works_list.json.jbuilder +++ b/app/views/homework_commons/works_list.json.jbuilder @@ -69,6 +69,7 @@ elsif @user_course_identity == Course::STUDENT json.project_info project_info @work, @current_user, @user_course_identity end json.work_group @work.work_group_name + json.is_leader @work.user_id == @work.commit_user_id end end @@ -140,6 +141,7 @@ elsif @homework.homework_type == "group" || @homework.homework_type == "normal" if @homework.homework_detail_group.base_on_project json.project_info project_info work, @current_user, @user_course_identity end + json.is_leader work.user_id == work.commit_user_id json.work_group work.work_group_name end diff --git a/app/views/student_works/edit.json.jbuilder b/app/views/student_works/edit.json.jbuilder index ce9d9ff72..88e5354e4 100644 --- a/app/views/student_works/edit.json.jbuilder +++ b/app/views/student_works/edit.json.jbuilder @@ -1,12 +1,14 @@ json.partial! "homework_commons/homework_public_navigation", locals: {homework: @homework, course: @course, user: @current_user} json.work_id @work.id json.description @work.description +json. json.attachments @work.attachments do |atta| json.partial! "attachments/attachment_simple", locals: {attachment: atta, delete: @work.delete_atta(atta)} end if @homework.homework_type == "group" + json.is_leader_work @work.user_id == @commit_user_id json.min_num @homework.homework_detail_group.try(:min_num) json.max_num @homework.homework_detail_group.try(:max_num) @@ -15,5 +17,6 @@ if @homework.homework_type == "group" json.user_name member.user.real_name json.group_name member.course_group_name json.student_id member.user.student_id + json.is_leader member.user_id == @commit_user_id end end \ No newline at end of file diff --git a/app/views/student_works/show.json.jbuilder b/app/views/student_works/show.json.jbuilder index 653ed6450..5756ac9cb 100644 --- a/app/views/student_works/show.json.jbuilder +++ b/app/views/student_works/show.json.jbuilder @@ -3,6 +3,7 @@ json.(@work, :description, :commit_time, :update_time) json.is_evaluation @is_evaluation json.author_name @is_evaluation ? "匿名" : @work.user.real_name +json.is_leader_work @work.user_id == @work.commit_user_id if @homework.homework_type == "group" json.is_author @is_author json.update_user_name @is_evaluation ? "匿名" : @work.commit_user.try(:real_name) @@ -17,8 +18,10 @@ unless @is_evaluation json.project_info project_info @work, @current_user, @user_course_identity end - json.work_members @work_members.each do |member| - json.user_name member.user.real_name - json.user_login member.user.login + json.work_members @work_members.each do |work| + json.user_name work.user.real_name + json.user_login work.user.login + json.work_id work.id + json.is_leader work.user_id == work.commit_user_id end end diff --git a/app/views/users/_user_simple.json.jbuilder b/app/views/users/_user_simple.json.jbuilder index 0d8f9d50c..3f9feebbe 100644 --- a/app/views/users/_user_simple.json.jbuilder +++ b/app/views/users/_user_simple.json.jbuilder @@ -1,4 +1,4 @@ json.id user.id -json.name user.full_name +json.name user.real_name json.login user.login json.image_url url_to_avatar(user) \ No newline at end of file diff --git a/app/views/users/get_navigation_info.json.jbuilder b/app/views/users/get_navigation_info.json.jbuilder index 377913ccc..ca7f45b45 100644 --- a/app/views/users/get_navigation_info.json.jbuilder +++ b/app/views/users/get_navigation_info.json.jbuilder @@ -16,6 +16,9 @@ json.top do json.moop_cases_url "#{@old_domain}/moop_cases" json.crowdsourcing_url "/crowdsourcing" + # 客户管理 + json.customer_management_url current_user.partner ? "#{@old_domain}/cooperates/#{current_user.partner.try(:id)}/partner_list" : nil + json.career_url do json.array! @career.to_a do |c| if c[1].present? diff --git a/config/aliyun_vod.yml b/config/aliyun_vod.yml new file mode 100644 index 000000000..aa6547a62 --- /dev/null +++ b/config/aliyun_vod.yml @@ -0,0 +1,16 @@ +defaults: &defaults + access_key_id: 'test' + access_key_secret: 'test' + base_url: 'http://vod.cn-shanghai.aliyuncs.com' + cate_id: '-1' + callback_url: 'http://47.96.87.25:48080/api/callbacks/aliyun_vod.json' + signature_key: 'test12345678' + +development: + <<: *defaults + +test: + <<: *defaults + +production: + <<: *defaults \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 45690fbad..988ebbfa2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -436,6 +436,7 @@ Rails.application.routes.draw do get :check_project get :cancel_relate_project post :relate_project + delete :delete_work end end end diff --git a/db/migrate/20190815064542_modify_class_period_for_courses.rb b/db/migrate/20190815064542_modify_class_period_for_courses.rb new file mode 100644 index 000000000..c0f8600b4 --- /dev/null +++ b/db/migrate/20190815064542_modify_class_period_for_courses.rb @@ -0,0 +1,8 @@ +class ModifyClassPeriodForCourses < ActiveRecord::Migration[5.2] + def change + Course.find_each do |c| + c.update_column(:class_period, c.class_period.to_i) + end + change_column :courses, :class_period, :integer + end +end diff --git a/db/migrate/20190815085136_modify_path_for_challenges.rb b/db/migrate/20190815085136_modify_path_for_challenges.rb new file mode 100644 index 000000000..a17fdbd04 --- /dev/null +++ b/db/migrate/20190815085136_modify_path_for_challenges.rb @@ -0,0 +1,5 @@ +class ModifyPathForChallenges < ActiveRecord::Migration[5.2] + def change + change_column :challenges, :path, :text + end +end diff --git a/lib/tasks/public_course.rake b/lib/tasks/public_course.rake new file mode 100644 index 000000000..9c5065982 --- /dev/null +++ b/lib/tasks/public_course.rake @@ -0,0 +1,99 @@ +#coding=utf-8 +# 执行示例 bundle exec rake public_course:student args=149,2903 +# args 第一个参数是subject_id,第二个参数是课程course_id +# 第一期时间:2018-12-16 至2019-03-31 +# 第二期时间:2019-04-07 至2019-07-28 +# +# 这次学习很有收获,感谢老师提供这么好的资源和细心的服务🎉🎉🎉 +# + +desc "同步精品课数据" +namespace :public_course do + subject_id = ENV['args'].split(",")[0] # 对应课程的id + course_id = ENV['args'].split(",")[1] # 对应课堂的id + status = ENV['args'].split(",")[2] # 表示相应的期数 + type = ENV['args'].split(",")[3] # 表示课程模块 + + if status.to_i == 1 + start_time = '2018-12-16' + end_time = '2019-04-01' + elsif status.to_i == 2 + start_time = '2019-04-07' + end_time = '2019-07-28' + else + # 这种情况是取所有的 + start_time = '2015-01-01' + end_time = '2022-07-28' + end + + task :student => :environment do + puts "subject_id is #{subject_id}" + puts "course_id is #{course_id}" + + user_ids = Myshixun.find_by_sql("select distinct(user_id) from myshixuns where shixun_id in (select shixun_id from stage_shixuns + where stage_id in (select id from stages where subject_id=#{subject_id}))").map(&:user_id) + puts user_ids + if user_ids.present? + user_ids.each do |user_id| + puts user_id + begin + CourseMember.create!(course_id: course_id, user_id: user_id, role: 4) + rescue Exception => e + Rails.logger() + end + end + end + end + + # + task :message => :environment do + discusses = Discuss.find_by_sql("select content, user_id, created_on, updated_on from discusses where dis_id in (select shixun_id from stage_shixuns where + stage_id in (select id from stages where subject_id=#{subject_id})) and created_at > #{start_time} and + created_at<#{end_time}") + discusses.find_each do |discuss| + puts discuss.user_id + puts discuss.content + # 回复帖子 + # 讨论区发布帖子 + # Message.create!(board: @message.board, root_id: @message.root_id || @message.id, + # author: current_user, parent: @message, + # message_detail_attributes: { + # content: params[:content] + # }) + end + end + + + # 更新某个课程的某类时间 + # 执行示例 bundle exec rake public_course:student tiems=149,2903 + task :time => :environment do + course_id = ENV['args'].split(",")[0] # 对应课堂的id + satus = ENV['args'].split(",")[1] + + course = Course.find(course_id) + + hour = (6..24).to_a.sample(1).first + min = rand(60) + sec = rand(60) + + start_time = Date.parse(start_time) + end_time = Date.parse(end_time) + date = (start_time..end_time).to_a.sample(1).first + + time = "#{date} #{min_swith(hour)}:#{min_swith(min)}:#{min_swith(sec)}" + + puts time + case type + when 1 + # 讨论区 + + end + + end + + def min_swith(time) + puts time + return time < 9 ? "0#{time}" : time + end +end + diff --git a/lib/tasks/publick_course.rake b/lib/tasks/publick_course.rake deleted file mode 100644 index 532e32369..000000000 --- a/lib/tasks/publick_course.rake +++ /dev/null @@ -1,25 +0,0 @@ -#coding=utf-8 -# 执行示例 bundle exec rake public_course:student args=149,2903 -# args 第一个参数是subject_id,第二个参数是课程course_id - -desc "同步精品课数据" -namespace :public_course do - task :student => :environment do - - - subject_id = ENV['args'].split(",").first - course_id = ENV['args'].split(",").last - puts "subject_id is #{subject_id}" - puts "course_id is #{course_id}" - - user_ids = Myshixun.find_by_sql("select distinct(user_id) from myshixuns where shixun_id in (select shixun_id from stage_shixuns - where stage_id in (select id from stages where subject_id=#{subject_id}))").map(&:user_id) - puts user_ids - if user_ids.present? - user_ids.each do |user_id| - puts user_id - CourseMember.create!(course_id: course_id, user_id: user_id, role: 4) - end - end - end -end \ No newline at end of file diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js index c09a2cbe7..95be3a8a5 100644 --- a/public/react/src/AppConfig.js +++ b/public/react/src/AppConfig.js @@ -10,6 +10,7 @@ broadcastChannelOnmessage('refreshPage', () => { }) function locationurl(list){ + debugger if (window.location.port === "3007") { } else { @@ -158,7 +159,8 @@ export function initAxiosInterceptors(props) { // console.log("401401401") // } if (response.data.status === 403||response.data.status === "403") { - locationurl('/403'); + + locationurl('/403'); } if (response.data.status === 404) { diff --git a/public/react/src/modules/courses/Resource/Fileslistitem.js b/public/react/src/modules/courses/Resource/Fileslistitem.js index c3998700f..f0aec7f64 100644 --- a/public/react/src/modules/courses/Resource/Fileslistitem.js +++ b/public/react/src/modules/courses/Resource/Fileslistitem.js @@ -261,9 +261,9 @@ class Fileslistitem extends Component{

} -

+

- {discussMessage.author.login} + {discussMessage.author.name} 大小 {discussMessage.filesize} 下载 {discussMessage.downloads_count} 引用 {discussMessage.quotes} @@ -302,7 +302,7 @@ class Fileslistitem extends Component{ -

+

资源描述 :{discussMessage.description===null?"暂无描述":discussMessage.description}
{/**/} {/*/!**!/*/} diff --git a/public/react/src/modules/courses/busyWork/CommonWorkPost.js b/public/react/src/modules/courses/busyWork/CommonWorkPost.js index 7f4020590..c248c554c 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkPost.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkPost.js @@ -5,6 +5,8 @@ import TPMMDEditor from '../../tpm/challengesnew/TPMMDEditor'; import { WordsBtn, getUploadActionUrl, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll } from 'educoder'; import axios from 'axios'; import Modals from '../../modals/Modals'; +import _ from 'lodash' + const Search = Input.Search; const CheckboxGroup = Checkbox.Group; @@ -67,15 +69,19 @@ class CommonWorkPost extends Component{ status: 'done' } }) + const _memebers = response.data.members.slice(0); + this._edit_init_memebers = _memebers + delete response.data.members; this.setState({ ...response.data, - selectmemberslist: response.data.members || [], + selectmemberslist: _memebers || [], // members: [], - task_status: response.data.members ? response.data.members.map(item => item.user_id) : [], + task_status: [], //_memebers ? _memebers.map(item => item.user_id) : [], fileList: _fileList, memberNumMin: response.data.min_num, memberNumMax: response.data.max_num, }) + this.mine = _memebers.length ? _memebers[0] : null // 分组 // this.setState({ // task_status:checkedValues, @@ -99,6 +105,11 @@ class CommonWorkPost extends Component{ group_name: response.data.group_name, } + this.mine = mine + // const _memebers = response.data.members.slice(0); + if (response.data.members) { + delete response.data.members; + } this.setState({ ...response.data, selectmemberslist: [mine], @@ -157,7 +168,7 @@ class CommonWorkPost extends Component{ } if(isGroup){ if(userids!=undefined){ - if(userids.length + 1memberNumMax){ + }else if(userids.length > memberNumMax){ this.setState({ minvalue: memberNumMax, setvalue:"大于", @@ -424,30 +435,53 @@ class CommonWorkPost extends Component{ } funtaskstatus=(checkedValues)=>{ - let{members}=this.state; - let newlist =members.concat(this.state.selectmemberslist); - let newcheckedValues=checkedValues; - let selects=[]; - // const selectobjct = this._findByUserId(check) - // selects.push(selectobjct) - for(var z=0; z this.state.task_status.length 是新增; 反之是删除 + 比较找到不同的id + 去除重复的,checkedValues留下的是新增,task_status留下的是删除 + */ + + const _checkedValues = checkedValues.slice(0) + const _task_status = this.state.task_status.slice(0); + checkedValues.forEach(item => { + this.state.task_status.forEach(_item => { + if (item == _item) { + _.remove(_checkedValues, (item)=> item == _item) + _.remove(_task_status, (item)=> item == _item) } - } - - } + }) + }) + let _selectmemberslist = this.state.selectmemberslist.slice(0) + if (_checkedValues.length) { // 新增 + _selectmemberslist.push( this.state.members.filter(item => item.user_id == _checkedValues[0])[0]) + } else if (_task_status.length) { // 删除 + _.remove(_selectmemberslist, (item)=> item.user_id == _task_status[0]) + } + + + // let{members}=this.state; + // let newlist =members.concat(this.state.selectmemberslist); + // let newcheckedValues=checkedValues; + // let selects= this.mine ? [this.mine] : []; + // // const selectobjct = this._findByUserId(check) + // // selects.push(selectobjct) + // for(var z=0; z{ + doDelete = (id) => { let{selectmemberslist,task_status}=this.state; let newlist=task_status.slice(0); let selects=selectmemberslist; @@ -468,6 +502,52 @@ class CommonWorkPost extends Component{ selectmemberslist:selects }) } + delecttask_status=(id)=>{ + if (this.isEdit) { + let deleteOldMemberIndex = -1; + + if (this._edit_init_memebers && this._edit_init_memebers.length) { + this._edit_init_memebers.some((item, index) => { + if (item.user_id == id) { + deleteOldMemberIndex = index; + return true + } + }) + if (deleteOldMemberIndex == -1) { + this.doDelete(id) + return; + } else { + + } + } + + this.props.confirm({ + content:
+
TA的作品将被删除
+
是否确认删除?
+
, + onOk: () => { + let workId=this.props.match.params.workId; + const url = `/homework_commons/${workId}/student_works/delete_work.json`; + axios.delete(url, { data: { + user_id: id + }}) + .then((response) => { + if (response.data.status == 0) { + this.searchValue() + this.doDelete(id) + deleteOldMemberIndex != -1 && this._edit_init_memebers.splice(deleteOldMemberIndex, 1) + } + }) + .catch(function (error) { + console.log(error); + }); + } + }) + } else { + this.doDelete(id) + } + } gocannel=()=>{ this.props.history.goBack() diff --git a/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js b/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js index 26db9e7d8..40beb5313 100644 --- a/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js +++ b/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js @@ -496,6 +496,15 @@ class Coursesleftnav extends Component{ saveNavmoda=()=>{ let {Navmodaltypename,setnavid,NavmodalValue}=this.state; let id =setnavid; + + if(Navmodaltypename===5&&NavmodalValue==="未分班"||Navmodaltypename===2&&NavmodalValue==="未分班"){ + this.setState({ + NavmodalValuetype:true, + NavmodalValues:"名称不能和未分班一样" + }) + return + } + if(NavmodalValue===""){ this.setState({ NavmodalValuetype:true, @@ -639,6 +648,7 @@ class Coursesleftnav extends Component{ } onDragEnd=(result)=>{ + debugger // console.log(result) // let {course_modules}=this.props; // let newcourse_modules=course_modules; @@ -681,10 +691,10 @@ class Coursesleftnav extends Component{ this.droppablepost(url,result.destination.index+1) }else if(result.source.droppableId==="course_group"){ - - let url ="/course_groups/"+result.draggableId+"/move_category.json" - this.droppablepost(url,result.destination.index) - + if(result.draggableId!=1){ + let url ="/course_groups/"+result.draggableId+"/move_category.json" + this.droppablepost(url,result.destination.index+1) + } } } @@ -825,8 +835,16 @@ class Coursesleftnav extends Component{ onInput={this.setNavmodalValue} /> - - {this.state.NavmodalValuetype===true? + + {this.state.NavmodalValuetype===true? {this.state.NavmodalValues} :""}
@@ -842,7 +860,7 @@ class Coursesleftnav extends Component{ .droppableul{ max-height: 500px; overflow-y:auto; - overflow:hidden auto; + overflow-x:hidden; } .mr13{ @@ -935,8 +953,9 @@ class Coursesleftnav extends Component{ {iem.category_name} - {iem.category_count===0?"":iem.category_count} + {iem.category_count===0?"":iem.category_count} {item.type===twosandiantypes&&twosandiantype===index? + iem.category_id===0?"": iem.category_type==="graduation_topics"||iem.category_type==="graduation_tasks"? {iem.category_count===0?"":iem.category_count} : diff --git a/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js b/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js index c2c9b7bcf..91ca19e7d 100644 --- a/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js +++ b/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js @@ -336,6 +336,16 @@ class ExerciseReviewAndAnswer extends Component{ } + // 选择题,切换答案 + changeOption = (index,ids) =>{ + //console.log(index+" "+ids); + this.setState( + (prevState) => ({ + exercise_questions : update(prevState.exercise_questions, {[index]: { user_answer: {$set: ids} }}), + }) + ) + } + //简答题 显示和隐藏答案 changeA_flag=(index,status)=>{ this.setState( @@ -726,6 +736,7 @@ class ExerciseReviewAndAnswer extends Component{ exercise={exercise} questionType={item} user_exercise_status={user_exercise_status} + changeOption={(index,ids)=>this.changeOption(index,ids)} changeQuestionStatus={(No,flag)=>this.changeQuestionStatus(No,flag)} index={key} > @@ -739,6 +750,7 @@ class ExerciseReviewAndAnswer extends Component{ exercise={exercise} questionType={item} user_exercise_status={user_exercise_status} + changeOption={(index,ids)=>this.changeOption(index,ids)} changeQuestionStatus={(No,flag)=>this.changeQuestionStatus(No,flag)} index={key} diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js index bcc0d85a3..65e48962a 100644 --- a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js +++ b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js @@ -163,6 +163,10 @@ class Testpapersettinghomepage extends Component{ } } + //打开pdf + confpdf = (url) =>{ + window.open(url); + } /// 确认是否下载 confirmysl(url,child){ let params ={} @@ -372,7 +376,7 @@ class Testpapersettinghomepage extends Component{ 导出 :""} diff --git a/public/react/src/modules/courses/exercise/question/multiple.js b/public/react/src/modules/courses/exercise/question/multiple.js index 7e96f8550..bbbfa0c94 100644 --- a/public/react/src/modules/courses/exercise/question/multiple.js +++ b/public/react/src/modules/courses/exercise/question/multiple.js @@ -15,6 +15,7 @@ class Multiple extends Component{ saveId=(value)=>{ let question_id=this.props.questionType.question_id; let url=`/exercise_questions/${question_id}/exercise_answers.json`; + let {index}=this.props; axios.post((url),{ exercise_choice_id:value }).then((result)=>{ @@ -25,6 +26,7 @@ class Multiple extends Component{ }else{ k=0; } + this.props.changeOption && this.props.changeOption(index,value); this.props.changeQuestionStatus && this.props.changeQuestionStatus(parseInt(this.props.questionType.q_position)-1,k); } }).catch((error)=>{ @@ -42,14 +44,14 @@ class Multiple extends Component{ console.log(questionType); return(
- + { questionType.question_choices && questionType.question_choices.map((item,key)=>{ let prefix = `${tagArray[key]}.` return(

- {prefix} + {prefix} {/* */} {/* */} { let choiceId=e.target.value; let question_id=this.props.questionType.question_id; + let {index}=this.props; let url=`/exercise_questions/${question_id}/exercise_answers.json`; axios.post((url),{ exercise_choice_id:choiceId }).then((result)=>{ if(result){ + this.props.changeOption && this.props.changeOption(index,[choiceId]); this.props.changeQuestionStatus && this.props.changeQuestionStatus(parseInt(this.props.questionType.q_position)-1,1); } }).catch((error)=>{ @@ -38,12 +40,12 @@ class single extends Component{ let isJudge = questionType.question_type == 2 return(

- + { questionType.question_choices && questionType.question_choices.map((item,key)=>{ let prefix = isJudge ? undefined : `${tagArray[key]}.` return( -

+

{prefix} {/* */} {/* */} diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js index f93d13eac..fcbe6b9aa 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitedit.js @@ -760,6 +760,7 @@ class GraduationTasksSubmitedit extends Component{ height: '30px' }}> { return parseInt(task_status[key])===item.user_id?true:false diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js index f5060ad4c..dadc621b2 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js @@ -439,10 +439,24 @@ class GraduationTasksSubmitnew extends Component{ ).then((response) => { this.setState({ spinnings:false - }) - if(response!==undefined){ - this.goback() + }); + // /courses/2915/graduation_tasks/1301/appraise + // window.location.href + if(response){ + if(response.data){ + if(response.data.work_id){ + window.location.href=`/courses/${this.props.match.params.coursesId}/graduation_tasks/${response.data.work_id}/appraise` + } + } } + // console.log(this.props); + // console.log(response); + + // 新需求 + // https://www.trustie.net/issues/23015 + // if(response!==undefined){ + // this.goback() + // } // if(response.status===200) { // GraduationTasksnewtype=false; // if(response.data.status===0){ @@ -458,6 +472,9 @@ class GraduationTasksSubmitnew extends Component{ // } // } }).catch((error) => { + this.setState({ + spinnings:false + }); console.log(error) }) diff --git a/public/react/src/modules/courses/graduation/tasks/index.js b/public/react/src/modules/courses/graduation/tasks/index.js index 80dceb562..b54815b2f 100644 --- a/public/react/src/modules/courses/graduation/tasks/index.js +++ b/public/react/src/modules/courses/graduation/tasks/index.js @@ -179,8 +179,13 @@ class GraduationTasks extends Component{ }) .then((result)=>{ if(result.data.status==0){ + this.setState({ + checkBoxValues:[], + checkAllValue:false + }) + this.fetchAll(search,page,order,15) this.props.showNotification(`${result.data.message}`); - this.fetchAll(search,page,order,15) + } }).catch((error)=>{ console.log(error); @@ -554,9 +559,10 @@ class GraduationTasks extends Component{ } // 题库选用成功后刷新页面 useBankSuccess=(checkBoxValues,object_ids)=>{ - // debugger + //debugger let {search,page,order,all_count} = this.state; this.fetchAll(search,page,order,all_count) + } getcourse_groupslist=(id)=>{ this.setState({ @@ -651,7 +657,7 @@ class GraduationTasks extends Component{ : ""} - {this.props.isAdmin() ?this.useBankSuccess=(checkBoxValues,object_ids)}>:""} + {this.props.isAdmin() ?this.useBankSuccess(checkBoxValues,object_ids)}>:""} } diff --git a/public/react/src/modules/courses/graduation/topics/index.js b/public/react/src/modules/courses/graduation/topics/index.js index 6587ed0c6..61a9bea67 100644 --- a/public/react/src/modules/courses/graduation/topics/index.js +++ b/public/react/src/modules/courses/graduation/topics/index.js @@ -355,6 +355,13 @@ onBoardsNew=()=>{ DownloadMessageval:undefined }) } + + // 题库选用成功后刷新页面 + useBankSuccess=(checkBoxValues,object_ids)=>{ + //debugger + let {searchValue,page,status} =this.state + this.fetchAll(searchValue,page,status); + } render(){ let { searchValue, diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 6ef194380..a37e58a92 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -369,7 +369,7 @@ class Listofworksstudentone extends Component { { record.submitstate === "未提交" ?-- : - this.Viewstudenttraininginformation(record)}>{record.operating} } @@ -693,7 +693,7 @@ class Listofworksstudentone extends Component { render: (text, record) => ( record.submitstate === "未提交" ? -- : - this.Viewstudenttraininginformationt(record)}>{record.operating} ) @@ -987,7 +987,7 @@ class Listofworksstudentone extends Component { render: (text, record) => ( record.submitstate === "未提交" ? -- : - this.Viewstudenttraininginformationt(record)}>{record.operating} ) diff --git a/public/react/src/modules/courses/shixunHomework/shixunHomework.js b/public/react/src/modules/courses/shixunHomework/shixunHomework.js index 48c988114..e168dcf6e 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunHomework.js +++ b/public/react/src/modules/courses/shixunHomework/shixunHomework.js @@ -686,6 +686,7 @@ class ShixunHomework extends Component{ ModalSave:this.cancelmodel, Loadtype:false, checkBoxValues:[], + checkedtype:false, }) this.props.showNotification(response.data.message) this.homeworkupdatalist(Coursename,page,order); @@ -1018,8 +1019,9 @@ class ShixunHomework extends Component{

- {datas&&datas.category_name===undefined||datas&&datas.category_name===null?datas&&datas.main_category_name:datas&&datas.category_name+" 作业列表"} -

  • + {/*{datas&&datas.category_name===undefined||datas&&datas.category_name===null?datas&&datas.main_category_name:datas&&datas.category_name+" 作业列表"}*/} + 实训作业 +
  • {this.props.isAdmin()===true?datas&&datas.category_name===undefined||datas&&datas.category_name===null? this.addDir()} className={"mr30 font-16"}>添加目录 diff --git a/public/react/src/modules/paths/PathDetail/PathDetailIndex.js b/public/react/src/modules/paths/PathDetail/PathDetailIndex.js index fd45f13e6..53eb566e6 100644 --- a/public/react/src/modules/paths/PathDetail/PathDetailIndex.js +++ b/public/react/src/modules/paths/PathDetail/PathDetailIndex.js @@ -500,8 +500,8 @@ class PathDetailIndex extends Component{
  • { detailInfoList===undefined?"":detailInfoList.allow_add_member===true?
    - - + {key!=0?:""} + {key+1!=detailInfoList.members.length?:""}
    :"" } diff --git a/public/react/src/modules/paths/PathDetail/addCollaborators.js b/public/react/src/modules/paths/PathDetail/addCollaborators.js index 6100ab2f6..0b99fd467 100644 --- a/public/react/src/modules/paths/PathDetail/addCollaborators.js +++ b/public/react/src/modules/paths/PathDetail/addCollaborators.js @@ -187,8 +187,8 @@ class addCollaborators extends Component{ { partnerList && partnerList.map((item,key)=>{ return( -
  • - +
  • + {item.user_name} {item.nickname} {item.identity} diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index b816448e0..a6a849183 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -826,6 +826,9 @@ submittojoinclass=(value)=>{ {/* p 老师 l 学生 */}
  • 我的实训
  • 我的实践课程
  • +
  • + 客户管理 +
  • 我的项目
  • 我的众包
  • 账号管理
  • diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js index b18b2b1c7..f87f128a1 100644 --- a/public/react/src/modules/tpm/TPMIndexHOC.js +++ b/public/react/src/modules/tpm/TPMIndexHOC.js @@ -362,6 +362,7 @@ export function TPMIndexHOC(WrappedComponent) { overflow: hidden; } .newHeaders{ + // position: fixed; max-width: unset; background: #24292D !important; width: 100%; diff --git a/public/react/src/search/SearchPage.js b/public/react/src/search/SearchPage.js index 33a1a7852..5c23d331e 100644 --- a/public/react/src/search/SearchPage.js +++ b/public/react/src/search/SearchPage.js @@ -183,14 +183,14 @@ class SearchPage extends Component{ return (
    -
    +
    {/*标题*/} diff --git a/public/stylesheets/css/edu-common.css b/public/stylesheets/css/edu-common.css index f19e3b8da..14b7de1d6 100644 --- a/public/stylesheets/css/edu-common.css +++ b/public/stylesheets/css/edu-common.css @@ -1,613 +1,613 @@ -@charset "utf-8"; -body{font-size:14px; line-height:2.0;background:#ffffff!important;font-family: "微软雅黑","宋体"; color:#333;height: 100%} -html{height:100%;} -.newContainer{ min-height:100%; height: auto !important; height: 100%; /*IE6不识别min-height*/position: relative;} -.newMain{ margin: 0 auto; padding-bottom: 155px; min-width:1200px } -.newFooter{ position: absolute; bottom: 0; width: 100%; height: 155px;background: #323232; clear:both; min-width: 1200px;z-index:99999;left: 0px;} -/* 重置样式 */ -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;} -table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:14px;line-height:1.9; background:#f5f5f5; 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:#FF7500;} -a:hover.fa{color:#FF7500;} - -input,textarea,select{ background: #fff; border:1px solid #eee;} -textarea{resize: none;} -/*侧滚动条*/ -::-webkit-scrollbar { width:10px; height:10px; background-color: #F5F5F5; } -::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); background-color: #F5F5F5; } -::-webkit-scrollbar-thumb { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); background-color: #ccc; } -/*万能清除浮动*/ -.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;white-space: pre-wrap;} -.break-word-firefox{white-space: pre-wrap !important;word-break: break-all;} -/*超过隐藏*/ -.task-hide{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} -.task-hide2{overflow:-moz-hidden-unscrollable; white-space: nowrap; text-overflow:ellipsis;} -.hide{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} -.hide-text {overflow:hidden; white-space:nowrap;} -/*隐藏*/ -.none{display: none} -.block{ display:block;} -/*通用文字功能样式*/ -.font-bd{ font-weight: bold;} -.color-red-light{color: #F00!important;} -.color-red{ color:#d2322d!important;} -.u-color-light-red{color: #FF6666} -.color-black{color:#333!important;} -.color-green{color:#51a74f!important;} -.color-light-green{color:#29bd8b!important;} -.color-blue{color:#3498db!important;} -.color-orange{color:#ee4a1f!important;} -.color-orange02{color:#f79f88!important;} -.color-orange03{color:#ff7500!important;} -.color-orange04{color: #ee4a20!important;}/*温馨提示公用颜色*/ -.color-orange05{color: #4CACFF!important;} -.color-orange06{color: #ff6530!important;} -a.color-orange05:hover,i.color-orange05:hover{color:#ff7500!important;} -.color-orange06{color:#FF6610!important;} -.color-yellow{color:#f0ad4e!important;} -.color-yellow2{color:#ff9933!important;} -.color-yellow3{color:#FFC828;}/*新版学员统计---通关排行榜 2018/01/22*/ - -.color-light-grey{color:#afafaf!important;} -.color-grey-7f{color: #7f7f7f!important;} -.color-grey-no-a{color:#888!important;} -.color-grey{color:#888!important;} -.color-grey9{color:#999!important;} -a.color-grey:hover{color: #FF7500!important;}/*a标签,移入变橙色*/ -.color-dark-grey{color:#666!important;} -.color-grey3{color:#333!important;} -a.color-grey3:hover{color: #ff7500!important;} -.u-color-light-grey{color: #CCCCCC} -.color-light-grey-C{color: #CCCCCC!important;} -.color-light-grey-E{color: #EEEEEE} -.color-grey-bf{color:#bfbfbf!important;} -.color-grey-bf:hover{color: #FF7500!important;} -.color-grey-b{color:#bbbbbb!important;} - -.-text-danger{ color:#FF6545 } -.color_white{ color:#fff!important;} -.color_Purple_grey{color: #8291a3!important;}/*TPI评论里右侧点赞的icon颜色*/ -.color-grey-c{color: #cccccc!important;} -.color-grey-3{color: #333333 !important;} -a.link-color-grey{color:#888!important;} -a:hover.link-color-grey{color:#29bd8b!important;} -a.link-color-green{color:#29bd8b!important;} -a.link-color-blue{color:#6a8abe!important;} -a.link-color-grey02{color:#888!important;} -a:hover.link-color-grey02{ color:red!important;} -a.link-color-grey03{color:#888!important;} -a:hover.link-color-grey03{color:#3498db!important;} -.edu-color-grey{ color:#666;} -.edu-color-grey:hover{color:#ff7500;} -/*通用背景颜色*/ -.back-color-orange{background-color: #FF7500} - - -/*通用文字大小样式*/ -.font-12{ font-size: 12px!important;} -.font-13{ font-size: 13px!important;} -.font-14{ font-size: 14px!important;} -.font-15{ font-size: 15px!important;} -.font-16{ font-size: 16px!important;} -.font-17{ font-size: 17px!important;} -.font-18{ font-size: 18px!important;} -.font-20{ font-size: 20px!important;} -.font-22{ font-size: 22px!important;} -.font-24{ font-size: 24px!important;} -.font-28{ font-size: 28px!important;} -.font-30{ font-size: 30px!important;} -.font-50{ font-size: 50px!important;} -.font-60{ font-size: 60px!important;} -.font-70{ font-size: 70px!important;} -/*通用内外边距*/ -.mt-10{ margin-top:-10px;}.mt1{ margin-top:1px;}.mt2{ margin-top:2px;}.mt3{ margin-top:3px;}.mt4{ margin-top:4px;}.mt5{ margin-top:5px!important;}.mt6{ margin-top:6px;}.mt7{ margin-top:7px!important;}.mt8{ margin-top:8px;}.mt10{ margin-top:10px;}.mt12{ margin-top:12px;}.mt13{ margin-top:13px;}.mt15{ margin-top:15px;}.mt17{ margin-top:17px;}.mt20{ margin-top:20px!important;}.mt25{ margin-top:25px;}.mt30{ margin-top:30px!important;}.mt36{ margin-top:36px!important;}.mt40{ margin-top:40px;}.mt50{ margin-top:50px;}.mt70{ margin-top:70px;}.mt95{ margin-top:95px;}.mt100{ margin-top:100px;} -.mb5{ margin-bottom: 5px;}.mb7{ margin-bottom: 7px;}.mb10{ margin-bottom: 10px;}.mb11{ margin-bottom: 11px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px!important;}.mb40{ margin-bottom: 40px!important;}.mb50{ margin-bottom: 50px!important;}.mb60{ margin-bottom: 60px!important;}.mb70{ margin-bottom: 70px!important;}.mb80{ margin-bottom: 80px!important;}.mb90{ margin-bottom: 90px!important;}.mb100{ margin-bottom: 100px!important;}.mb110{ margin-bottom: 110px;} -.ml-3{ margin-left: -3px;}.ml1{margin-left: 1px;}.ml2{margin-left: 2px;}.ml3{margin-left: 3px;}.ml4{margin-left: 4px;}.ml5{ margin-left: 5px;}.ml6{ margin-left: 6px;}.ml10{ margin-left: 10px;}.ml12{ margin-left:12px!important;}.ml15{ margin-left: 15px;}.ml18{ margin-left: 18px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml33{ margin-left: 33px;}.ml35{ margin-left:35px;}.ml40{margin-left:40px;}.ml42{margin-left:42px;}.ml45{ margin-left: 45px;}.ml50{ margin-left: 50px;}.ml55{ margin-left: 55px;}.ml60{ margin-left: 60px;}.ml75{ margin-left: 75px;}.ml80{ margin-left: 80px;}.ml85{margin-left:85px;}.ml95{ margin-left: 95px;}.ml115{margin-left: 115px}.ml123{ margin-left: 123px;}.ml150{ margin-left: 150px;}.ml180{ margin-left: 180px;}.ml230{ margin-left: 230px;}.ml240{margin-left: 240px;}.ml250{margin-left: 250px;}.ml290{ margin-left: 290px;} -.mr3{margin-right: 3px}.mr4{margin-right: 4px}.mr5{ margin-right: 5px;}.mr8{ margin-right: 8px;}.mr10{ margin-right: 10px;}.mr12{ margin-right:12px!important;}.mr15{ margin-right: 15px;}.mr18{ margin-right: 18px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right:30px;}.mr35{margin-right:35px;}.mr40{margin-right:40px;}.mr45{margin-right:45px;}.mr50{ margin-right: 50px;}.mr60{ margin-right:60px;}.mr350{ margin-right:350px;}.pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;}.pt30{ padding-top:30px;}.pt40{ padding-top:40px;}.pt47{ padding-top:47px;}.pt100{padding-top:100px;}.pt130{padding-top:130px;} - -.pt1{ padding-top:1px;}.pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;}.pt30{ padding-top:30px;}.pt40{ padding-top:40px;} -.pb5{ padding-bottom:5px;}.pb10{ padding-bottom:10px;}.pb15{ padding-bottom:15px;}.pb20{ padding-bottom:20px;}.pb30{ padding-bottom:30px;}.pb40{ padding-bottom:40px;}.pb47{ padding-bottom:47px;}.pb50{ padding-bottom:50px;}.pb155{ padding-bottom:155px;} -.pl2{ padding-left:2px;}.pl5{ padding-left:5px;}.pl8{ padding-left:8px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;}.pl28{ padding-left:28px;}.pl30{ padding-left:30px;}.pl33{padding-left: 33px}.pl40{ padding-left:40px;}.pl42{ padding-left:42px;}.pl45{ padding-left:45px;}.pl50{ padding-left:50px;}.pl100{ padding-left:100px;}.pl35{ padding-left:35px;}.pl50{padding-left:50px;}.pl70{padding-left:70px;}.pl80{padding-left:80px;}.pl92{padding-left:92px;} -.pr2{ paddding-right:2px;}.pr5{ padding-right:5px;}.pr10{ padding-right:10px;}.pr15{ padding-right:15px;}.pr20{ padding-right:20px!important;}.pr30{ padding-right:30px!important;}.pr42{ padding-right:42px;}.pr45{ padding-right:45px;} - -.pl2{ padding-left:2px;}.pl5{ padding-left:5px;}.pl8{ padding-left:8px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;}.pl28{ padding-left:28px;}.pl30{ padding-left:30px;}.pl33{padding-left: 33px}.pl40{ padding-left:40px;}.pl42{ padding-left:42px;}.pl45{ padding-left:45px;}.pl50{ padding-left:50px;}.pl100{ padding-left:100px;}.pl35{ padding-left:35px;}.pl50{padding-left:50px;}.pl70{padding-left:70px;}.pl80{padding-left:80px;}.pl92{padding-left:92px;} -.pr2{ paddding-right:2px;}.pr5{ padding-right:5px;}.pr10{ padding-right:10px;}.pr15{ padding-right:15px;}.pr20{ padding-right:20px!important;}.pr30{ padding-right:30px!important;}.pr42{ padding-right:42px;}.pr45{ padding-right:45px;} - - -.padding15{ padding:15px;} -.padding10{ padding:10px;} -.padding10-15{ padding:10px 15px;} -.padding15-10{ padding:15px 10px;} -.ptl5-10{ padding:5px 10px;} -.ptl3-10{ padding:3px 10px;} -.ptl8-10{ padding:8px 10px;} - - - -.wb11{width:11%!important;}.wb89{width:89%!important;} - -.h3{ height:3px;} -.h24{ height: 24px;} -.h32{ height: 32px;} -.h40{ height: 40px;} -.h50{ height: 50px;} -.h60{ height: 60px;} -.h80{ height: 80px;} -.h100{ height:100px;} -.h140{ height:140px;} -.h200{ height:200px;} -/*块*/ -.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{ width: 500px; background: #fff; border:1px solid #e8e8e8; -position:absolute;left:-510px;top:0;} -.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{cursor: pointer;display: inline-block;border: none;padding: 0 12px;color: #666;background: #e1e1e1;letter-spacing: 1px;text-align: center;font-size: 14px;height: 30px;line-height: 30px;border-radius: 3px; } -a.task-btn-green{background: #29bd8b; color: #fff!important;} -a:hover.task-btn-green{background: #19b17e;} -a.task-btn-orange{background: #FF7500; color:#fff!important;} -a.task-newbtn-grey{background-color: #e1e1e1;color: #666666;}/*删除取消退出类按钮*/ -a:hover.task-newbtn-grey{color: #333} -a.task-btn-blue{background: #199ed8; color:#fff!important;} -a:hover.task-btn-blue{background: #199ed8;color:#fff;} -a.task-btn-grey{background-color: #d4d6d8; color: #4d555d!important;} -a:hover.task-btn-grey{background-color: #d4d6d8; color: #4d555d;} -a.task-btn-grey-white{background-color: #c2c4c6; color: #fff;} -a:hover.task-btn-grey-white{background-color: #a9abad;} -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!important;} -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: #FF7500; color: #fff !important; border-radius:5px; font-size:12px; padding:0 10px;} -a.rest-btn-ver{ cursor: not-allowed; background: #ccc;} -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.rest-btn-ver{ cursor: not-allowed; background: #ccc;} -.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,a.new_login_submit{ display: block; text-decoration: none !important; 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 a{ color:#fff !important; text-decoration: none;} -.new_login_submit:hover{background: #19b17e;} -a.task-btn-email{display: inline-block;font-weight: bold;border: none; width:185px;color: #666;background: #e1e1e1;letter-spacing: 1px;text-align: center;font-size: 14px;height: 40px;line-height: 40px;border-radius: 3px;} -a:hover.task-btn-email {background: #c3c3c3; color: #666;} - -.white-btn-h40{text-align:center;cursor: pointer;display: inline-block;padding: 5px 10px;border: 1px solid #ccc;color: #666;letter-spacing: 1px;font-size: 14px;height: 26px;line-height: 26px;border-radius: 3px;} -a.white-btn.green-btn{color:#29bd8b;border:1px solid #29bd8b; } -a.white-btn.gery-btn{color: #aaa;border: 1px solid #aaa} -a.white-btn.gery-btn:hover{color: #FFFFFF;border: 1px solid #aaa;background: #aaa} -a.white-btn.orange-bg-btn,a.white-btn-h40.orange-bg-btn{color: #FFFFFF;border: 1px solid #FF7500;background: #ff7500} -a.grey-btn{padding: 0px 8px;height: 30px;line-height: 30px;background-color: #eaeaea;color: #7f7f7f;font-size: 14px;border-radius: 3px;} - -.invite-btn{display: block;padding: 1px 10px;background: #fff;color: #333;border-radius: 4px;} -a.decoration{text-decoration: underline!important;} -/*07-11 新添加的公用样式 cs*/ -a.course-btn{cursor: pointer;font-weight: bold;border-radius: 4px;display: inline-block;width: auto;padding: 0px 12px;background-color: #FFFFFF;color: #44bfa3;letter-spacing: 1px;height: 30px;line-height: 30px;} -.bc-grey{background-color: #CCCCCC!important;} -.bc-white{background-color: #ffffff!important;} -a.course-bth-blue{cursor: pointer;background-color:#199ed8 ;color: #ffffff !important;display: inline-block;font-weight: bold;border: none;padding: 0 12px;letter-spacing: 1px;text-align: center;font-size: 14px;height: 30px;line-height: 30px;border-radius: 3px;} -a.course-bth-orange{cursor: pointer;background-color:#ff6530 ;color: #ffffff !important;display: inline-block;font-weight: bold;border: none;padding: 0 12px;letter-spacing: 1px;text-align: center;font-size: 14px;height: 30px;line-height: 30px;border-radius: 3px;} -.topic-hover a:hover{background:#ff7500;color:#fff;} -/*.topic-hover li a:hover{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;} -.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;} -.alert-red{background-color: #f2dede;border-color: #eed3d7; color: #d14f4d; text-align: left!important;} -/*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; } -.red-cir-btn{ background:#e74c3c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} -/****************************/ -/* 页面结构*/ -.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;} -.pre_word{white-space: pre-wrap;word-wrap: break-word;word-break: normal;} -.pr {position:relative;} -.df {display:flex;display: -webkit-flex;display: -ms-flex;} -.df-js-ac{ justify-content:space-around;-webkit-justify-content: space-around;-webkit-align-items:center;-ms-flex-align:center; align-items: center;} - -.w28 {width: 28px;} -.w40{ width: 40px;} -.w50{width: 50px;}.edu-txt-w50{ width:50px;} -.w60{width: 60px;} -.w70{width: 70px;} -.w80 {width: 80px;} -.w100{width: 100px;} -.w120{width: 120px;} -.w150{width: 150px;} -.w200{width: 200px;} -.w300{width: 300px;} -.w320{width: 320px;} -.edu-w245{ width: 245px; }.w266{width: 266px;} -.w780{width: 780px;} -.w850{width: 850px;} -.w900{width: 900px;} - - - -.with10{ width: 10%;}.with15{ width: 15%;} -.with20{ width: 20%;}.with25{ width: 25%;} -.with30{ width: 30%;}.with35{ width: 35%;} -.with40{ width: 40%;}.with45{ width: 45%;}.with49{ width: 49%;} -.with50{ width: 50%;}.with55{ width: 55%;} -.with52{ width: 52%;}.with48{ width: 48%;} -.with60{ width: 60%;}.with65{ width: 65%;} -.with70{ width: 70%;}.with73{ width: 73%;}.with75{ width: 75%;} -.with70{ width: 70%;}.with73{ width: 73%;}.with75{ width: 75%;} -.with80{ width: 80%;}.with85{ width: 85%;} -.with87{ width: 87%;}.with90{ width: 90%;}.with95{ width: 95%;} -.with100{ width: 100%;} -.edu-bg{ background:#fff!important;} -.disabled-bg{ background:#eee !important;} -.disabled-grey-bg{ background: #a4a4a4 !important;} -/* 课程共用 后期再添加至公共样式 bylinda*/ -a.link-name-dark{ color:#666; max-width:140px; display: block; } -a:hover.link-name-dark{ color:#ff7500;} -/* 超过宽度省略 */ -.edu-name-dark{ max-width:100px; display: block; } -.edu-info-dark{ max-width:345px; display: block; } -.edu-max-h200{ height:200px; overflow: auto;} -.edu-h260{ height:260px;} -.edu-position{ position: relative;} -.edu-h200-auto{ max-height:200px; overflow:auto;} -.edu-h300-auto{ max-height:300px; overflow:auto;} -.edu-h350-auto{ max-height:350px; overflow:auto;} -.edu-txt-w240{ width:240px; display: block;} -.edu-txt-w280{ width:280px; display: block;} -.edu-txt-w320{ width:320px; display: block;} -.edu-txt-w200{ width:200px; display: block;} -a.edu-txt-w280,.edu-txt-w280{ width:280px; display: inline-block;text-align: center} -a.edu-txt-w190,.edu-txt-w190{ width:190px; display: inline-block;text-align: center} -a.edu-txt-w160,.edu-txt-w160{ width:160px; display: inline-block;text-align: center} -a.edu-txt-w140,.edu-txt-w140{ width:141px; display: inline-block;text-align: center} -a.edu-txt-w130,.edu-txt-w130{ width:130px; display: inline-block;text-align: center} -a.edu-txt-w120,.edu-txt-w120{ width:120px; display: inline-block;text-align: center} -a.edu-txt-w100,.edu-txt-w100{ width:100px; display: inline-block;text-align: center} -a.edu-txt-w90,.edu-txt-w90{ width:90px; display: inline-block;text-align: center} -a.edu-txt-w80,.edu-txt-w80{ width:80px; display: inline-block;text-align: center} -.overellipsis{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;} -/* 筛选按钮 */ -.edu-btn-search{ position: absolute; top:0; right:15px;} -.edu-con-top{ padding:10px 0; background:#fff; border-bottom:1px solid #eee;font-size:16px; } -.edu-con-top h2{ font-size:16px;} -.edu-form-label{display: inline-block; width:60px;text-align: right; line-height: 40px; font-weight: normal;} -.edu-form-border{ border:1px solid #ddd;} -.edu-form-notice-border{ border:1px solid #f27d61 !important;} -.edu-form-noborder,input.edu-form-noborder{ border:none; outline:none;} -a.edu-btn{display: inline-block;border:none; padding:0 12px;color: #666!important;border:1px solid #ccc; text-align:center;font-size: 14px; height: 29px;line-height: 29px; border-radius:3px; font-weight: bold;letter-spacing:1px;} -a:hover.edu-btn{ border:1px solid #5faee3; color: #5faee3!important;} -.edu-cir-grey{ display: inline-block; padding:0px 5px; color:#666; background:#f3f3f3; text-align: center; border-radius:15px; font-size:12px; line-height:20px!important;} -.edu-cir-grey1{ display: inline-block; padding:0px 5px; margin-left: 5px; color:#666; background:#ccc; text-align: center; border-radius:15px; font-size:12px; line-height:20px!important;} -.edu-cir-grey-q{ display: inline-block; padding:0px 7px; color:#666; background:#f3f3f3; text-align: center; border-radius:15px; font-size:12px; line-height:20px!important;} -.edu-cir-orange{ display: inline-block; padding:0px 7px; color:#fff; background:#FF7500; text-align: center; border-radius:15px; font-size:12px; line-height:20px!important;} - -/*a.edu-filter-cir-grey{display: inline-block; padding:0px 15px; color:#666; border:1px solid #ddd; text-align: center; border-radius:3px; font-size:12px; height:25px; line-height:25px;} -a:hover.edu-filter-cir-grey,a.edu-filter-cir-grey.active{ border:1px solid #3498db; color:#3498db; }*/ - - -.eud-pointer{ cursor:pointer;} -.edu-bg-grey{ background:#f6f6f6; width:90%; min-width:700px; color:#666;} -/* table-1底部边框 */ -.edu-pop-table{ width: 100%; border:1px solid #eee; border-bottom:none; background:#fff; color:#888;cursor: default} -.edu-pop-table tr{ height:40px; } -.edu-pop-table tr.edu-bg-grey{ background:#f5f5f5;} - -.edu-pop-table tr th{ color:#333;border-bottom:1px solid #eee; } -.edu-pop-table tr td{border-bottom:1px solid #eee;} -.edu-pop-table.table-line tr td,.edu-pop-table.table-line tr th{ border-right:1px solid #eee;} -.edu-pop-table.table-line tr td:last-child,.edu-pop-table.table-line tr th:last-child{border-right:none;} -.edu-pop-table tr td .alink-name{color: #333!important;} -.edu-pop-table tr td .alink-name:hover{color: #FF7500!important;} -.edu-pop-table tr td .alink-operate{color: #cccccc!important;} -.edu-pop-table tr td .alink-operate:hover{color: #FF7500!important;} -/*th行有背景颜色且table无边框*/ -.edu-pop-table.head-color thead tr{background: #fafbfb} -.edu-pop-table.head-color{border: none} -.edu-pop-table.head-color tr:last-child td {border: none} -/*--表格行间隔背景颜色-*/ -.edu-pop-table.interval-td thead tr{background: #fafbfb} -.edu-pop-table.interval-td tbody tr:nth-child(even){background: #fafbfb} -.edu-pop-table.interval-td tbody tr td{border: none} -/*--表格行间隔背景颜色(th也没有边框)-*/ -.edu-pop-table.interval-all{border:none} -.edu-pop-table.interval-all thead th{border: none} -.edu-pop-table.interval-all thead tr{background: #fafbfb} -.edu-pop-table.interval-all tbody tr:nth-child(even){background: #fafbfb} -.edu-pop-table.interval-all tbody tr td{border: none;padding:5px 0px} -/*--表格行移入背景颜色-*/ -.edu-pop-table.hover-td tbody tr:hover{background: #EFF9FD}/*悬浮颜色为天蓝色*/ -.edu-pop-table.hover-td_1 tbody tr:hover{background:#FCF2EC}/*悬浮颜色为浅橙色*/ -/* table-2全边框 */ -.edu-pop-table-all{ width: 100%; border:1px solid #eee; background:#fff; color:#888;border-collapse: collapse} -.edu-pop-table-all tr{ height:30px; } -.edu-pop-table-all tr.edu-bg-grey{ background:#f5f5f5;} -.edu-pop-table-all tr th{ color:#333;border:1px solid #eee; } -.edu-pop-table-all tr td{border:1px solid #eee;padding: 5px} - - - -.edu-line{ border-bottom:1px solid #eee;} -table.table-th-grey th{ background:#f5f5f5;} -table.table-pa5 th,table.table-pa5 td{ padding:0 5px;} -.panel-comment_item .orig_cont-red{ border:solid 2px #cc0000; border-radius:10px; padding:4px;color:#999;margin-top:-1px; } -/***** loading ******/ -/***** Ajax indicator ******/ -#ajax-indicator { - position: absolute; /* fixed not supported by IE*/ - background-color:#eee; - border: 1px solid #bbb; - top:35%; - left:40%; - width:20%; - /*height:5%;*/ - font-weight:bold; - text-align:center; - padding:0.6em; - z-index:100000; - opacity: 0.5; -} - -html>body #ajax-indicator { position: fixed; } - -#ajax-indicator span{ - color:#fff; - color: #333333; - background-position: 0% 40%; - background-repeat: no-repeat; - background-image: url(/images/loading.gif); - padding-left: 26px; - vertical-align: bottom; - z-index:100000; -} - - -/*----------------------列表结构*/ -.forum_table .forum_table_item:nth-child(odd){background: #fafbfb} -.forum_table_item{padding: 20px 15px;display: flex;} -.forum_table_item .item_name{color: #333} -.forum_table_item .item_name:hover{color: #FF7500} - - -.edu-bg{ background:#fff;} -/*---------tab切换-----*/ -.task-tab{width:10%;height:42px;line-height:42px;text-align:center;color:#666; - position:relative;cursor:pointer;} -.task-tab.sheet{border-bottom:3px solid #5faee3;color:#5faee3;} -.task-tab.bold{border-bottom:3px solid #5faee3;font-weight:bold;} -.task-tab i{position:absolute;bottom:-9px;left:45%;color:#5faee3 !important;} - -.undis {display: none} -.edu-change .panel-form-label{ line-height:1.9;} - -.title_type { line-height: 40px;height: 40px;border-bottom: 1px solid #eee;color: #666;padding-left: 15px; } -.teacher_banner {border-bottom: 1px solid #eee} -.zbg { background: url("/images/edu_user/richEditer.png") -195px -2px no-repeat; height: 18px; cursor: pointer} -.zbg_latex { background: url("/images/edu_user/richEditer.png") -315px -3px no-repeat;height: 18px;cursor: pointer;} -.latex{position:relative;top: 4px;} - -.white_bg {background: #fff} -.user_tab_type {background: #FF6610} - -/*首页----------筛选切换(有数字)*/ -.user_course_filtrate{width: auto;text-align: center;line-height: 26px;} -.user_filtrate_span1_bg{color: #FF7500} -.user_filtrate_span2{width: auto;padding: 0px 6px;border-radius: 8px;background: #ccc;font-size: 12px;display: block;line-height: 15px;float: right;color: #FFFFFF; margin-top: 6px;} -.user_filtrate_span2_bg{background: #FF7500!important;} -.user_course_filtrate:hover .user_filtrate_span1{color: #FF7500!important;} -.user_course_filtrate:hover .user_filtrate_span2{background: #FF7500!important;} -/*课堂----------筛选切换(没有数字,默认白色背景)*/ -.course_filtrate{width: auto;padding:0px 10px;text-align: center;background: #eeeeee;border-radius: 10px;margin-right: 20px;line-height: 26px;} -.course_filtrate:hover{background: #FF7500; color: #ffffff; } -.course_filtrate_bg{background: #FF7500; color: #ffffff!important; } -/*我的课堂----------筛选切换(没有数字,默认灰色背景)*/ -.edu-filter-cir-grey{color: #666!important;width: auto;padding:0px 15px;text-align: center;background: #f3f3f3;border-radius: 10px;display: block; height:25px; line-height:25px;} -.edu-filter-cir-grey:hover{background: #FF7500; color: #ffffff!important;} -.edu-filter-cir-grey.active{background: #FF7500; color: #ffffff!important;} - -.edu-find .edu-find-input{border-bottom: 1px solid #EEEEEE;} -.edu-find .edu-find-input input{border: none;outline: none} -.edu-find .edu-close{position: absolute;top: -1px;right: 7px;font-size: 18px;cursor: pointer;} -.edu-find .edu-open{position: absolute;top: 1px;right: -18px} - - -/*最新和最热导航条的公用样式*/ -.nav_check_item{margin-bottom:13px;border-bottom: 2px solid #FC7033;} -.nav_check_item li{width:auto;width: 80px;text-align: center;cursor: pointer;height: 38px;line-height: 38px;border-top-right-radius:5px;border-top-left-radius:5px;} -.nav_check_item li a{display: block;width: 100%;} - -.check_nav{background: #FC7033;color: #ffffff;} -.check_nav a{color: #ffffff !important;} - -/*实训列表块里面的遮罩效果*/ -.black-half{position: absolute;left: 0;top:0px;width: 100%;height: 100%;background: rgba(0,0,0,0.4);z-index: 3;display: none;} -.black-half-lock{width: 65px;height: 65px;border-radius: 50%;background:#8291a3;vertical-align: middle;text-align: center;margin:25% auto 0px;} -.black-half-lock i{margin-top: 7px;} -.black-half-info{width: 100%;text-align: center;color: #FFFFFF;margin-top:10px} -.show-black{display: block;animation: black-down 1s linear 1;} -@-webkit-keyframes black-down { - 25% {-webkit-transform: translateY(0);} - 50%, 100% {-webkit-transform: translateY(0);} -} - -@keyframes black-down { - 25% {transform: translateY(0);} - 50%, 100% {transform: translateY(0);} -} - -/*去掉IE input框输入时自带的清除按钮*/ -input::-ms-clear{display:none;} - - -/*最小高度*/ -.mh750{min-height: 750px} -.mh650{min-height: 650px} -.mh580{min-height: 580px} -.mh550{min-height: 550px} -.mh510{min-height: 510px} -.mh440{min-height: 440px} -.mh400{min-height: 400px} -.mh390{min-height: 390px} -.mh360{min-height: 360px} -.mh350{min-height: 350px} -.mh320{min-height: 320px} -.mh240{min-height: 240px} -.mh200{min-height: 200px} - -/*---------------操作部分虚线边框-----------------*/ -.border-dash-orange{border: 1px dashed #ffbfaa} -/*错误、危险、失败提示边框*/ -.border-error-result{border:1px dashed #ff5252} - -.border-dash-ccc{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc;} - -.login-error{border:1px solid #ff5252!important;}/*登录时,输入的手机号码或者密码错误,边框变红*/ -.error-red{border: 1px solid #DB6666;background: #FFE6E5;border-radius: 3px;padding: 2px 10px;} -.error-red i{color: #FF6666} - - -/*---------------tab公用背景颜色-----------------*/ -.background-blue{background:#5ECFBA!important;} -.background-orange{background: #FC7033!important;} -.back-orange-main{background: #FC7500!important;color:#FFFFff!important;}/*主流橙色*/ -.back-orange-01{background: #FF9e6a!important;}/*带背景标题、带色彩分割线和操作入口*/ -.back-f6-grey{background: #F6F6F6;} -.background-blue a{color:#ffffff!important;} -.background-orange a{color: #ffffff!important;} -/*---------------tab公用边框-----------------*/ -.border-bottom-orange{border-bottom: 2px solid #FC7033!important;} -.bor-bottom-orange{border-bottom: 1px solid #FF9e6a!important;} -.bor-bottom-greyE{border-bottom: 1px solid #EEEEEE!important;} -.bor-top-greyE{border-top: 1px solid #EEEEEE!important;} -/*---------------边框-----------------*/ -.bor-gray-c{border:1px solid #ccc;} -.bor-grey-e{border:1px solid #eee;} -.bor-grey-d{border:1px solid #ddd;} -.bor-grey01{border:1px solid #E6EAEB;} -.bor-orange{border:1px solid #FF7500;} -.bor-blue{border:1px solid #5faee3;} -.bor-red{border:1px solid #db0505;} -.bor-none{border:none;} -.bor-outnone{outline:none; border:0px;} -/*延时*/ -.delay{border:1px solid #db0505;padding: 0px 10px;height: 23px;line-height: 23px;border-radius: 12px;display: block;float: left;color:#db0505 } - -/*-------------------------圆角-------------------------*/ -.bor-radius-upper{border-radius: 4px 4px 0px 0px;} -.bor-radius4{border-radius: 4px;} -.bor-radius20{border-radius: 20px;} -.bor-radius-all{border-radius: 50%;} - -/*-------------------------旋转-------------------------*/ -.transform90{transform: rotate(90deg);} -/*---------------------编辑器边框------------------------*/ -.kindeditor{background: #F0F0EE;height:22px;border:1px solid #CCCCCC;border-bottom: none} - -/*文本框只有下边框*/ -.other_input{border: none;border-bottom: 1px solid #aaa;outline: none} -/*两端对齐*/ -.justify{text-align: justify!important;} - -/**/ -#edu-tab-nav .edu-position-hidebox li a{font-size: 12px} -/*在线课堂*/ -.courseRefer{float:left; max-height:120px;margin-bottom:10px;overflow:auto; overflow-x:hidden;} -.logo {width: 295px;height: 30px;border-style:none;position: absolute;top:50%;left:39%;} -/**/ -.task-header-info .fork{font-weight:bold;font-size:14px;color:#666;} - - -.memos_con a{color: #3b94d6!important;} -.memos_con ul li{ list-style-type: disc!important; } -.memos_con ol li{ list-style-type: decimal!important; } -.memos_con li{ margin-bottom: 0!important; } -.memos_con pre {overflow-x: auto;} - -/*详情a标签默认显示样式*/ -.a_default_show a{color: #136ec2!important} - -/*消息机制右侧小三角*/ -.tiding{width: 100%;height: 50px ;position: relative} -.triangle {position: absolute;right: -1px;top:0px;width: 0;height: 0;border-top: 35px solid #29bd8b;border-left: 60px solid transparent;z-index: 1} -.triangle-new{position: absolute;right: 1px;top: 0px;z-index: 2;font-size: 14px;color: white;transform: rotate(30deg);} -.forum_news_list_item{padding: 15px 20px;} -.forum_news_list_item:nth-child(odd){background-color:#FAFBFB } -.listItem_right{line-height: 45px;float: right;max-width: 100px;margin-right: 15px;color: #888888} -.listItem_middle{max-width: 980px;} -.news_fa{font-size: 30px;color: #888;margin: 7px 16px;} -.tiding_logo{text-align:center;background: #f3f3f3;width: 200px;height: 100px} - -.tr-position{position: absolute;left:54%;width: 20px;text-align: center;border: none!important;} - -.two_lines_show{ overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;height: 60px; word-wrap: break-word;} -.two_lines_show_my{ overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;height: 40px; word-wrap: break-word;} -.three_lines_show{ overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;height: 66px;line-height: 22px; word-wrap: break-word;} - -/*新版讨论区*/ -.discuss-tab a:hover{border-bottom: 2px solid #FC7033!important; color:#000;} -.discuss-lh40{ line-height:40px;}.discuss-lh16{ line-height:16px}.discuss-lh20{ line-height:20px;}.discuss-lh20{ line-height:20px;}.discuss-lh30{ line-height:30px;}.discuss-lh50{ line-height:50px;}.discuss-lh60{line-height:60px}.discuss-lh80{line-height:80px;}.discuss-lh100{line-height:100px;} -.discuss-bor-l{ border-left:4px solid #ff7500;} -.page-turn:hover{background:#fff; color:#FF7500;} - -/*实训路径/镜像类别图片*/ -.hor-ver-center{width:80px; height:80px; position:absolute; left:50%; top:50%; margin-left:-40px; margin-top:-40px;} -.hor-ver-center100{width:100px; height:100px; position:absolute; left:50%;top:25%; margin-left:-50px; margin-top:-25px;} -.mirror-shade{ background: rgba(0,0,0,0.4); z-index: 3; display:none;} - -.position20{position:absolute; top:-60px; left:7%;} - -/*--------TA的主页、关注*/ -.user_watch{width: 78px;padding: 2px 0px!important;} - - -/*-------------主页块的背景颜色----------------*/ -.edu-index-bg-green{ background:#5bcab1;} -.edu-index-bg-blue{ background:#75b9de;} -.edu-index-bg-purple{ background:#8f97df;} -.edu-index-bg-yellow{ background:#f7bb74;} -.edu-index-bg-orange{ background:#e48a81;} - -.bor-reds{ - border:1px solid #FF0000!important; - border-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} +@charset "utf-8"; +body{font-size:14px; line-height:2.0;background:#ffffff!important;font-family: "微软雅黑","宋体"; color:#333;height: 100%} +html{height:100%;} +.newContainer{ min-height:100%; height: auto !important; height: 100%; /*IE6不识别min-height*/position: relative;} +.newMain{ margin: 0 auto; padding-bottom: 155px; min-width:1200px } +.newFooter{ position: absolute; bottom: 0; width: 100%; height: 155px;background: #323232; clear:both; min-width: 1200px;z-index:99999;left: 0px;} +/* 重置样式 */ +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;} +table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:14px;line-height:1.9; background:#f5f5f5; 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:#FF7500;} +a:hover.fa{color:#FF7500;} + +input,textarea,select{ background: #fff; border:1px solid #eee;} +textarea{resize: none;} +/*侧滚动条*/ +::-webkit-scrollbar { width:10px; height:10px; background-color: #F5F5F5; } +::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); background-color: #F5F5F5; } +::-webkit-scrollbar-thumb { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); background-color: #ccc; } +/*万能清除浮动*/ +.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;white-space: pre-wrap;} +.break-word-firefox{white-space: pre-wrap !important;word-break: break-all;} +/*超过隐藏*/ +.task-hide{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} +.task-hide2{overflow:-moz-hidden-unscrollable; white-space: nowrap; text-overflow:ellipsis;} +.hide{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} +.hide-text {overflow:hidden; white-space:nowrap;} +/*隐藏*/ +.none{display: none} +.block{ display:block;} +/*通用文字功能样式*/ +.font-bd{ font-weight: bold;} +.color-red-light{color: #F00!important;} +.color-red{ color:#d2322d!important;} +.u-color-light-red{color: #FF6666} +.color-black{color:#333!important;} +.color-green{color:#51a74f!important;} +.color-light-green{color:#29bd8b!important;} +.color-blue{color:#3498db!important;} +.color-orange{color:#ee4a1f!important;} +.color-orange02{color:#f79f88!important;} +.color-orange03{color:#ff7500!important;} +.color-orange04{color: #ee4a20!important;}/*温馨提示公用颜色*/ +.color-orange05{color: #4CACFF!important;} +.color-orange06{color: #ff6530!important;} +a.color-orange05:hover,i.color-orange05:hover{color:#ff7500!important;} +.color-orange06{color:#FF6610!important;} +.color-yellow{color:#f0ad4e!important;} +.color-yellow2{color:#ff9933!important;} +.color-yellow3{color:#FFC828;}/*新版学员统计---通关排行榜 2018/01/22*/ + +.color-light-grey{color:#afafaf!important;} +.color-grey-7f{color: #7f7f7f!important;} +.color-grey-no-a{color:#888!important;} +.color-grey{color:#888!important;} +.color-grey9{color:#999!important;} +a.color-grey:hover{color: #FF7500!important;}/*a标签,移入变橙色*/ +.color-dark-grey{color:#666!important;} +.color-grey3{color:#333!important;} +a.color-grey3:hover{color: #ff7500!important;} +.u-color-light-grey{color: #CCCCCC} +.color-light-grey-C{color: #CCCCCC!important;} +.color-light-grey-E{color: #EEEEEE} +.color-grey-bf{color:#bfbfbf!important;} +.color-grey-bf:hover{color: #FF7500!important;} +.color-grey-b{color:#bbbbbb!important;} + +.-text-danger{ color:#FF6545 } +.color_white{ color:#fff!important;} +.color_Purple_grey{color: #8291a3!important;}/*TPI评论里右侧点赞的icon颜色*/ +.color-grey-c{color: #cccccc!important;} +.color-grey-3{color: #333333 !important;} +a.link-color-grey{color:#888!important;} +a:hover.link-color-grey{color:#29bd8b!important;} +a.link-color-green{color:#29bd8b!important;} +a.link-color-blue{color:#6a8abe!important;} +a.link-color-grey02{color:#888!important;} +a:hover.link-color-grey02{ color:red!important;} +a.link-color-grey03{color:#888!important;} +a:hover.link-color-grey03{color:#3498db!important;} +.edu-color-grey{ color:#666;} +.edu-color-grey:hover{color:#ff7500;} +/*通用背景颜色*/ +.back-color-orange{background-color: #FF7500} + + +/*通用文字大小样式*/ +.font-12{ font-size: 12px!important;} +.font-13{ font-size: 13px!important;} +.font-14{ font-size: 14px!important;} +.font-15{ font-size: 15px!important;} +.font-16{ font-size: 16px!important;} +.font-17{ font-size: 17px!important;} +.font-18{ font-size: 18px!important;} +.font-20{ font-size: 20px!important;} +.font-22{ font-size: 22px!important;} +.font-24{ font-size: 24px!important;} +.font-28{ font-size: 28px!important;} +.font-30{ font-size: 30px!important;} +.font-50{ font-size: 50px!important;} +.font-60{ font-size: 60px!important;} +.font-70{ font-size: 70px!important;} +/*通用内外边距*/ +.mt-10{ margin-top:-10px;}.mt1{ margin-top:1px;}.mt2{ margin-top:2px;}.mt3{ margin-top:3px;}.mt4{ margin-top:4px;}.mt5{ margin-top:5px!important;}.mt6{ margin-top:6px;}.mt7{ margin-top:7px!important;}.mt8{ margin-top:8px;}.mt10{ margin-top:10px;}.mt12{ margin-top:12px;}.mt13{ margin-top:13px;}.mt15{ margin-top:15px;}.mt17{ margin-top:17px;}.mt20{ margin-top:20px!important;}.mt25{ margin-top:25px;}.mt30{ margin-top:30px!important;}.mt36{ margin-top:36px!important;}.mt40{ margin-top:40px;}.mt50{ margin-top:50px;}.mt70{ margin-top:70px;}.mt95{ margin-top:95px;}.mt100{ margin-top:100px;} +.mb5{ margin-bottom: 5px;}.mb7{ margin-bottom: 7px;}.mb10{ margin-bottom: 10px;}.mb11{ margin-bottom: 11px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px!important;}.mb40{ margin-bottom: 40px!important;}.mb50{ margin-bottom: 50px!important;}.mb60{ margin-bottom: 60px!important;}.mb70{ margin-bottom: 70px!important;}.mb80{ margin-bottom: 80px!important;}.mb90{ margin-bottom: 90px!important;}.mb100{ margin-bottom: 100px!important;}.mb110{ margin-bottom: 110px;} +.ml-3{ margin-left: -3px;}.ml1{margin-left: 1px;}.ml2{margin-left: 2px;}.ml3{margin-left: 3px;}.ml4{margin-left: 4px;}.ml5{ margin-left: 5px;}.ml6{ margin-left: 6px;}.ml10{ margin-left: 10px;}.ml12{ margin-left:12px!important;}.ml13{margin-left: 13px}.ml15{ margin-left: 15px;}.ml18{ margin-left: 18px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml33{ margin-left: 33px;}.ml35{ margin-left:35px;}.ml40{margin-left:40px;}.ml42{margin-left:42px;}.ml45{ margin-left: 45px;}.ml50{ margin-left: 50px;}.ml55{ margin-left: 55px;}.ml60{ margin-left: 60px;}.ml75{ margin-left: 75px;}.ml80{ margin-left: 80px;}.ml85{margin-left:85px;}.ml95{ margin-left: 95px;}.ml115{margin-left: 115px}.ml123{ margin-left: 123px;}.ml150{ margin-left: 150px;}.ml180{ margin-left: 180px;}.ml230{ margin-left: 230px;}.ml240{margin-left: 240px;}.ml250{margin-left: 250px;}.ml290{ margin-left: 290px;} +.mr3{margin-right: 3px}.mr4{margin-right: 4px}.mr5{ margin-right: 5px;}.mr8{ margin-right: 8px;}.mr10{ margin-right: 10px;}.mr12{ margin-right:12px!important;}.mr15{ margin-right: 15px;}.mr18{ margin-right: 18px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right:30px;}.mr35{margin-right:35px;}.mr40{margin-right:40px;}.mr45{margin-right:45px;}.mr50{ margin-right: 50px;}.mr60{ margin-right:60px;}.mr350{ margin-right:350px;}.pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;}.pt30{ padding-top:30px;}.pt40{ padding-top:40px;}.pt47{ padding-top:47px;}.pt100{padding-top:100px;}.pt130{padding-top:130px;} + +.pt1{ padding-top:1px;}.pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;}.pt30{ padding-top:30px;}.pt40{ padding-top:40px;} +.pb5{ padding-bottom:5px;}.pb10{ padding-bottom:10px;}.pb15{ padding-bottom:15px;}.pb20{ padding-bottom:20px;}.pb30{ padding-bottom:30px;}.pb40{ padding-bottom:40px;}.pb47{ padding-bottom:47px;}.pb50{ padding-bottom:50px;}.pb155{ padding-bottom:155px;} +.pl2{ padding-left:2px;}.pl5{ padding-left:5px;}.pl8{ padding-left:8px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;}.pl28{ padding-left:28px;}.pl30{ padding-left:30px;}.pl33{padding-left: 33px}.pl40{ padding-left:40px;}.pl42{ padding-left:42px;}.pl45{ padding-left:45px;}.pl50{ padding-left:50px;}.pl100{ padding-left:100px;}.pl35{ padding-left:35px;}.pl50{padding-left:50px;}.pl70{padding-left:70px;}.pl80{padding-left:80px;}.pl92{padding-left:92px;} +.pr2{ paddding-right:2px;}.pr5{ padding-right:5px;}.pr10{ padding-right:10px;}.pr15{ padding-right:15px;}.pr20{ padding-right:20px!important;}.pr30{ padding-right:30px!important;}.pr42{ padding-right:42px;}.pr45{ padding-right:45px;} + +.pl2{ padding-left:2px;}.pl5{ padding-left:5px;}.pl8{ padding-left:8px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;}.pl28{ padding-left:28px;}.pl30{ padding-left:30px;}.pl33{padding-left: 33px}.pl40{ padding-left:40px;}.pl42{ padding-left:42px;}.pl45{ padding-left:45px;}.pl50{ padding-left:50px;}.pl100{ padding-left:100px;}.pl35{ padding-left:35px;}.pl50{padding-left:50px;}.pl70{padding-left:70px;}.pl80{padding-left:80px;}.pl92{padding-left:92px;} +.pr2{ paddding-right:2px;}.pr5{ padding-right:5px;}.pr10{ padding-right:10px;}.pr15{ padding-right:15px;}.pr20{ padding-right:20px!important;}.pr30{ padding-right:30px!important;}.pr42{ padding-right:42px;}.pr45{ padding-right:45px;} + + +.padding15{ padding:15px;} +.padding10{ padding:10px;} +.padding10-15{ padding:10px 15px;} +.padding15-10{ padding:15px 10px;} +.ptl5-10{ padding:5px 10px;} +.ptl3-10{ padding:3px 10px;} +.ptl8-10{ padding:8px 10px;} + + + +.wb11{width:11%!important;}.wb89{width:89%!important;} + +.h3{ height:3px;} +.h24{ height: 24px;} +.h32{ height: 32px;} +.h40{ height: 40px;} +.h50{ height: 50px;} +.h60{ height: 60px;} +.h80{ height: 80px;} +.h100{ height:100px;} +.h140{ height:140px;} +.h200{ height:200px;} +/*块*/ +.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{ width: 500px; background: #fff; border:1px solid #e8e8e8; +position:absolute;left:-510px;top:0;} +.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{cursor: pointer;display: inline-block;border: none;padding: 0 12px;color: #666;background: #e1e1e1;letter-spacing: 1px;text-align: center;font-size: 14px;height: 30px;line-height: 30px;border-radius: 3px; } +a.task-btn-green{background: #29bd8b; color: #fff!important;} +a:hover.task-btn-green{background: #19b17e;} +a.task-btn-orange{background: #FF7500; color:#fff!important;} +a.task-newbtn-grey{background-color: #e1e1e1;color: #666666;}/*删除取消退出类按钮*/ +a:hover.task-newbtn-grey{color: #333} +a.task-btn-blue{background: #199ed8; color:#fff!important;} +a:hover.task-btn-blue{background: #199ed8;color:#fff;} +a.task-btn-grey{background-color: #d4d6d8; color: #4d555d!important;} +a:hover.task-btn-grey{background-color: #d4d6d8; color: #4d555d;} +a.task-btn-grey-white{background-color: #c2c4c6; color: #fff;} +a:hover.task-btn-grey-white{background-color: #a9abad;} +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!important;} +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: #FF7500; color: #fff !important; border-radius:5px; font-size:12px; padding:0 10px;} +a.rest-btn-ver{ cursor: not-allowed; background: #ccc;} +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.rest-btn-ver{ cursor: not-allowed; background: #ccc;} +.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,a.new_login_submit{ display: block; text-decoration: none !important; 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 a{ color:#fff !important; text-decoration: none;} +.new_login_submit:hover{background: #19b17e;} +a.task-btn-email{display: inline-block;font-weight: bold;border: none; width:185px;color: #666;background: #e1e1e1;letter-spacing: 1px;text-align: center;font-size: 14px;height: 40px;line-height: 40px;border-radius: 3px;} +a:hover.task-btn-email {background: #c3c3c3; color: #666;} + +.white-btn-h40{text-align:center;cursor: pointer;display: inline-block;padding: 5px 10px;border: 1px solid #ccc;color: #666;letter-spacing: 1px;font-size: 14px;height: 26px;line-height: 26px;border-radius: 3px;} +a.white-btn.green-btn{color:#29bd8b;border:1px solid #29bd8b; } +a.white-btn.gery-btn{color: #aaa;border: 1px solid #aaa} +a.white-btn.gery-btn:hover{color: #FFFFFF;border: 1px solid #aaa;background: #aaa} +a.white-btn.orange-bg-btn,a.white-btn-h40.orange-bg-btn{color: #FFFFFF;border: 1px solid #FF7500;background: #ff7500} +a.grey-btn{padding: 0px 8px;height: 30px;line-height: 30px;background-color: #eaeaea;color: #7f7f7f;font-size: 14px;border-radius: 3px;} + +.invite-btn{display: block;padding: 1px 10px;background: #fff;color: #333;border-radius: 4px;} +a.decoration{text-decoration: underline!important;} +/*07-11 新添加的公用样式 cs*/ +a.course-btn{cursor: pointer;font-weight: bold;border-radius: 4px;display: inline-block;width: auto;padding: 0px 12px;background-color: #FFFFFF;color: #44bfa3;letter-spacing: 1px;height: 30px;line-height: 30px;} +.bc-grey{background-color: #CCCCCC!important;} +.bc-white{background-color: #ffffff!important;} +a.course-bth-blue{cursor: pointer;background-color:#199ed8 ;color: #ffffff !important;display: inline-block;font-weight: bold;border: none;padding: 0 12px;letter-spacing: 1px;text-align: center;font-size: 14px;height: 30px;line-height: 30px;border-radius: 3px;} +a.course-bth-orange{cursor: pointer;background-color:#ff6530 ;color: #ffffff !important;display: inline-block;font-weight: bold;border: none;padding: 0 12px;letter-spacing: 1px;text-align: center;font-size: 14px;height: 30px;line-height: 30px;border-radius: 3px;} +.topic-hover a:hover{background:#ff7500;color:#fff;} +/*.topic-hover li a:hover{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;} +.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;} +.alert-red{background-color: #f2dede;border-color: #eed3d7; color: #d14f4d; text-align: left!important;} +/*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; } +.red-cir-btn{ background:#e74c3c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} +/****************************/ +/* 页面结构*/ +.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;} +.pre_word{white-space: pre-wrap;word-wrap: break-word;word-break: normal;} +.pr {position:relative;} +.df {display:flex;display: -webkit-flex;display: -ms-flex;} +.df-js-ac{ justify-content:space-around;-webkit-justify-content: space-around;-webkit-align-items:center;-ms-flex-align:center; align-items: center;} + +.w28 {width: 28px;} +.w40{ width: 40px;} +.w50{width: 50px;}.edu-txt-w50{ width:50px;} +.w60{width: 60px;} +.w70{width: 70px;} +.w80 {width: 80px;} +.w100{width: 100px;} +.w120{width: 120px;} +.w150{width: 150px;} +.w200{width: 200px;} +.w300{width: 300px;} +.w320{width: 320px;} +.edu-w245{ width: 245px; }.w266{width: 266px;} +.w780{width: 780px;} +.w850{width: 850px;} +.w900{width: 900px;} + + + +.with10{ width: 10%;}.with15{ width: 15%;} +.with20{ width: 20%;}.with25{ width: 25%;} +.with30{ width: 30%;}.with35{ width: 35%;} +.with40{ width: 40%;}.with45{ width: 45%;}.with49{ width: 49%;} +.with50{ width: 50%;}.with55{ width: 55%;} +.with52{ width: 52%;}.with48{ width: 48%;} +.with60{ width: 60%;}.with65{ width: 65%;} +.with70{ width: 70%;}.with73{ width: 73%;}.with75{ width: 75%;} +.with70{ width: 70%;}.with73{ width: 73%;}.with75{ width: 75%;} +.with80{ width: 80%;}.with85{ width: 85%;} +.with87{ width: 87%;}.with90{ width: 90%;}.with95{ width: 95%;} +.with100{ width: 100%;} +.edu-bg{ background:#fff!important;} +.disabled-bg{ background:#eee !important;} +.disabled-grey-bg{ background: #a4a4a4 !important;} +/* 课程共用 后期再添加至公共样式 bylinda*/ +a.link-name-dark{ color:#666; max-width:140px; display: block; } +a:hover.link-name-dark{ color:#ff7500;} +/* 超过宽度省略 */ +.edu-name-dark{ max-width:100px; display: block; } +.edu-info-dark{ max-width:345px; display: block; } +.edu-max-h200{ height:200px; overflow: auto;} +.edu-h260{ height:260px;} +.edu-position{ position: relative;} +.edu-h200-auto{ max-height:200px; overflow:auto;} +.edu-h300-auto{ max-height:300px; overflow:auto;} +.edu-h350-auto{ max-height:350px; overflow:auto;} +.edu-txt-w240{ width:240px; display: block;} +.edu-txt-w280{ width:280px; display: block;} +.edu-txt-w320{ width:320px; display: block;} +.edu-txt-w200{ width:200px; display: block;} +a.edu-txt-w280,.edu-txt-w280{ width:280px; display: inline-block;text-align: center} +a.edu-txt-w190,.edu-txt-w190{ width:190px; display: inline-block;text-align: center} +a.edu-txt-w160,.edu-txt-w160{ width:160px; display: inline-block;text-align: center} +a.edu-txt-w140,.edu-txt-w140{ width:141px; display: inline-block;text-align: center} +a.edu-txt-w130,.edu-txt-w130{ width:130px; display: inline-block;text-align: center} +a.edu-txt-w120,.edu-txt-w120{ width:120px; display: inline-block;text-align: center} +a.edu-txt-w100,.edu-txt-w100{ width:100px; display: inline-block;text-align: center} +a.edu-txt-w90,.edu-txt-w90{ width:90px; display: inline-block;text-align: center} +a.edu-txt-w80,.edu-txt-w80{ width:80px; display: inline-block;text-align: center} +.overellipsis{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;} +/* 筛选按钮 */ +.edu-btn-search{ position: absolute; top:0; right:15px;} +.edu-con-top{ padding:10px 0; background:#fff; border-bottom:1px solid #eee;font-size:16px; } +.edu-con-top h2{ font-size:16px;} +.edu-form-label{display: inline-block; width:60px;text-align: right; line-height: 40px; font-weight: normal;} +.edu-form-border{ border:1px solid #ddd;} +.edu-form-notice-border{ border:1px solid #f27d61 !important;} +.edu-form-noborder,input.edu-form-noborder{ border:none; outline:none;} +a.edu-btn{display: inline-block;border:none; padding:0 12px;color: #666!important;border:1px solid #ccc; text-align:center;font-size: 14px; height: 29px;line-height: 29px; border-radius:3px; font-weight: bold;letter-spacing:1px;} +a:hover.edu-btn{ border:1px solid #5faee3; color: #5faee3!important;} +.edu-cir-grey{ display: inline-block; padding:0px 5px; color:#666; background:#f3f3f3; text-align: center; border-radius:15px; font-size:12px; line-height:20px!important;} +.edu-cir-grey1{ display: inline-block; padding:0px 5px; margin-left: 5px; color:#666; background:#ccc; text-align: center; border-radius:15px; font-size:12px; line-height:20px!important;} +.edu-cir-grey-q{ display: inline-block; padding:0px 7px; color:#666; background:#f3f3f3; text-align: center; border-radius:15px; font-size:12px; line-height:20px!important;} +.edu-cir-orange{ display: inline-block; padding:0px 7px; color:#fff; background:#FF7500; text-align: center; border-radius:15px; font-size:12px; line-height:20px!important;} + +/*a.edu-filter-cir-grey{display: inline-block; padding:0px 15px; color:#666; border:1px solid #ddd; text-align: center; border-radius:3px; font-size:12px; height:25px; line-height:25px;} +a:hover.edu-filter-cir-grey,a.edu-filter-cir-grey.active{ border:1px solid #3498db; color:#3498db; }*/ + + +.eud-pointer{ cursor:pointer;} +.edu-bg-grey{ background:#f6f6f6; width:90%; min-width:700px; color:#666;} +/* table-1底部边框 */ +.edu-pop-table{ width: 100%; border:1px solid #eee; border-bottom:none; background:#fff; color:#888;cursor: default} +.edu-pop-table tr{ height:40px; } +.edu-pop-table tr.edu-bg-grey{ background:#f5f5f5;} + +.edu-pop-table tr th{ color:#333;border-bottom:1px solid #eee; } +.edu-pop-table tr td{border-bottom:1px solid #eee;} +.edu-pop-table.table-line tr td,.edu-pop-table.table-line tr th{ border-right:1px solid #eee;} +.edu-pop-table.table-line tr td:last-child,.edu-pop-table.table-line tr th:last-child{border-right:none;} +.edu-pop-table tr td .alink-name{color: #333!important;} +.edu-pop-table tr td .alink-name:hover{color: #FF7500!important;} +.edu-pop-table tr td .alink-operate{color: #cccccc!important;} +.edu-pop-table tr td .alink-operate:hover{color: #FF7500!important;} +/*th行有背景颜色且table无边框*/ +.edu-pop-table.head-color thead tr{background: #fafbfb} +.edu-pop-table.head-color{border: none} +.edu-pop-table.head-color tr:last-child td {border: none} +/*--表格行间隔背景颜色-*/ +.edu-pop-table.interval-td thead tr{background: #fafbfb} +.edu-pop-table.interval-td tbody tr:nth-child(even){background: #fafbfb} +.edu-pop-table.interval-td tbody tr td{border: none} +/*--表格行间隔背景颜色(th也没有边框)-*/ +.edu-pop-table.interval-all{border:none} +.edu-pop-table.interval-all thead th{border: none} +.edu-pop-table.interval-all thead tr{background: #fafbfb} +.edu-pop-table.interval-all tbody tr:nth-child(even){background: #fafbfb} +.edu-pop-table.interval-all tbody tr td{border: none;padding:5px 0px} +/*--表格行移入背景颜色-*/ +.edu-pop-table.hover-td tbody tr:hover{background: #EFF9FD}/*悬浮颜色为天蓝色*/ +.edu-pop-table.hover-td_1 tbody tr:hover{background:#FCF2EC}/*悬浮颜色为浅橙色*/ +/* table-2全边框 */ +.edu-pop-table-all{ width: 100%; border:1px solid #eee; background:#fff; color:#888;border-collapse: collapse} +.edu-pop-table-all tr{ height:30px; } +.edu-pop-table-all tr.edu-bg-grey{ background:#f5f5f5;} +.edu-pop-table-all tr th{ color:#333;border:1px solid #eee; } +.edu-pop-table-all tr td{border:1px solid #eee;padding: 5px} + + + +.edu-line{ border-bottom:1px solid #eee;} +table.table-th-grey th{ background:#f5f5f5;} +table.table-pa5 th,table.table-pa5 td{ padding:0 5px;} +.panel-comment_item .orig_cont-red{ border:solid 2px #cc0000; border-radius:10px; padding:4px;color:#999;margin-top:-1px; } +/***** loading ******/ +/***** Ajax indicator ******/ +#ajax-indicator { + position: absolute; /* fixed not supported by IE*/ + background-color:#eee; + border: 1px solid #bbb; + top:35%; + left:40%; + width:20%; + /*height:5%;*/ + font-weight:bold; + text-align:center; + padding:0.6em; + z-index:100000; + opacity: 0.5; +} + +html>body #ajax-indicator { position: fixed; } + +#ajax-indicator span{ + color:#fff; + color: #333333; + background-position: 0% 40%; + background-repeat: no-repeat; + background-image: url(/images/loading.gif); + padding-left: 26px; + vertical-align: bottom; + z-index:100000; +} + + +/*----------------------列表结构*/ +.forum_table .forum_table_item:nth-child(odd){background: #fafbfb} +.forum_table_item{padding: 20px 15px;display: flex;} +.forum_table_item .item_name{color: #333} +.forum_table_item .item_name:hover{color: #FF7500} + + +.edu-bg{ background:#fff;} +/*---------tab切换-----*/ +.task-tab{width:10%;height:42px;line-height:42px;text-align:center;color:#666; + position:relative;cursor:pointer;} +.task-tab.sheet{border-bottom:3px solid #5faee3;color:#5faee3;} +.task-tab.bold{border-bottom:3px solid #5faee3;font-weight:bold;} +.task-tab i{position:absolute;bottom:-9px;left:45%;color:#5faee3 !important;} + +.undis {display: none} +.edu-change .panel-form-label{ line-height:1.9;} + +.title_type { line-height: 40px;height: 40px;border-bottom: 1px solid #eee;color: #666;padding-left: 15px; } +.teacher_banner {border-bottom: 1px solid #eee} +.zbg { background: url("/images/edu_user/richEditer.png") -195px -2px no-repeat; height: 18px; cursor: pointer} +.zbg_latex { background: url("/images/edu_user/richEditer.png") -315px -3px no-repeat;height: 18px;cursor: pointer;} +.latex{position:relative;top: 4px;} + +.white_bg {background: #fff} +.user_tab_type {background: #FF6610} + +/*首页----------筛选切换(有数字)*/ +.user_course_filtrate{width: auto;text-align: center;line-height: 26px;} +.user_filtrate_span1_bg{color: #FF7500} +.user_filtrate_span2{width: auto;padding: 0px 6px;border-radius: 8px;background: #ccc;font-size: 12px;display: block;line-height: 15px;float: right;color: #FFFFFF; margin-top: 6px;} +.user_filtrate_span2_bg{background: #FF7500!important;} +.user_course_filtrate:hover .user_filtrate_span1{color: #FF7500!important;} +.user_course_filtrate:hover .user_filtrate_span2{background: #FF7500!important;} +/*课堂----------筛选切换(没有数字,默认白色背景)*/ +.course_filtrate{width: auto;padding:0px 10px;text-align: center;background: #eeeeee;border-radius: 10px;margin-right: 20px;line-height: 26px;} +.course_filtrate:hover{background: #FF7500; color: #ffffff; } +.course_filtrate_bg{background: #FF7500; color: #ffffff!important; } +/*我的课堂----------筛选切换(没有数字,默认灰色背景)*/ +.edu-filter-cir-grey{color: #666!important;width: auto;padding:0px 15px;text-align: center;background: #f3f3f3;border-radius: 10px;display: block; height:25px; line-height:25px;} +.edu-filter-cir-grey:hover{background: #FF7500; color: #ffffff!important;} +.edu-filter-cir-grey.active{background: #FF7500; color: #ffffff!important;} + +.edu-find .edu-find-input{border-bottom: 1px solid #EEEEEE;} +.edu-find .edu-find-input input{border: none;outline: none} +.edu-find .edu-close{position: absolute;top: -1px;right: 7px;font-size: 18px;cursor: pointer;} +.edu-find .edu-open{position: absolute;top: 1px;right: -18px} + + +/*最新和最热导航条的公用样式*/ +.nav_check_item{margin-bottom:13px;border-bottom: 2px solid #FC7033;} +.nav_check_item li{width:auto;width: 80px;text-align: center;cursor: pointer;height: 38px;line-height: 38px;border-top-right-radius:5px;border-top-left-radius:5px;} +.nav_check_item li a{display: block;width: 100%;} + +.check_nav{background: #FC7033;color: #ffffff;} +.check_nav a{color: #ffffff !important;} + +/*实训列表块里面的遮罩效果*/ +.black-half{position: absolute;left: 0;top:0px;width: 100%;height: 100%;background: rgba(0,0,0,0.4);z-index: 3;display: none;} +.black-half-lock{width: 65px;height: 65px;border-radius: 50%;background:#8291a3;vertical-align: middle;text-align: center;margin:25% auto 0px;} +.black-half-lock i{margin-top: 7px;} +.black-half-info{width: 100%;text-align: center;color: #FFFFFF;margin-top:10px} +.show-black{display: block;animation: black-down 1s linear 1;} +@-webkit-keyframes black-down { + 25% {-webkit-transform: translateY(0);} + 50%, 100% {-webkit-transform: translateY(0);} +} + +@keyframes black-down { + 25% {transform: translateY(0);} + 50%, 100% {transform: translateY(0);} +} + +/*去掉IE input框输入时自带的清除按钮*/ +input::-ms-clear{display:none;} + + +/*最小高度*/ +.mh750{min-height: 750px} +.mh650{min-height: 650px} +.mh580{min-height: 580px} +.mh550{min-height: 550px} +.mh510{min-height: 510px} +.mh440{min-height: 440px} +.mh400{min-height: 400px} +.mh390{min-height: 390px} +.mh360{min-height: 360px} +.mh350{min-height: 350px} +.mh320{min-height: 320px} +.mh240{min-height: 240px} +.mh200{min-height: 200px} + +/*---------------操作部分虚线边框-----------------*/ +.border-dash-orange{border: 1px dashed #ffbfaa} +/*错误、危险、失败提示边框*/ +.border-error-result{border:1px dashed #ff5252} + +.border-dash-ccc{border-top:1px dashed #ccc;border-bottom:1px dashed #ccc;} + +.login-error{border:1px solid #ff5252!important;}/*登录时,输入的手机号码或者密码错误,边框变红*/ +.error-red{border: 1px solid #DB6666;background: #FFE6E5;border-radius: 3px;padding: 2px 10px;} +.error-red i{color: #FF6666} + + +/*---------------tab公用背景颜色-----------------*/ +.background-blue{background:#5ECFBA!important;} +.background-orange{background: #FC7033!important;} +.back-orange-main{background: #FC7500!important;color:#FFFFff!important;}/*主流橙色*/ +.back-orange-01{background: #FF9e6a!important;}/*带背景标题、带色彩分割线和操作入口*/ +.back-f6-grey{background: #F6F6F6;} +.background-blue a{color:#ffffff!important;} +.background-orange a{color: #ffffff!important;} +/*---------------tab公用边框-----------------*/ +.border-bottom-orange{border-bottom: 2px solid #FC7033!important;} +.bor-bottom-orange{border-bottom: 1px solid #FF9e6a!important;} +.bor-bottom-greyE{border-bottom: 1px solid #EEEEEE!important;} +.bor-top-greyE{border-top: 1px solid #EEEEEE!important;} +/*---------------边框-----------------*/ +.bor-gray-c{border:1px solid #ccc;} +.bor-grey-e{border:1px solid #eee;} +.bor-grey-d{border:1px solid #ddd;} +.bor-grey01{border:1px solid #E6EAEB;} +.bor-orange{border:1px solid #FF7500;} +.bor-blue{border:1px solid #5faee3;} +.bor-red{border:1px solid #db0505;} +.bor-none{border:none;} +.bor-outnone{outline:none; border:0px;} +/*延时*/ +.delay{border:1px solid #db0505;padding: 0px 10px;height: 23px;line-height: 23px;border-radius: 12px;display: block;float: left;color:#db0505 } + +/*-------------------------圆角-------------------------*/ +.bor-radius-upper{border-radius: 4px 4px 0px 0px;} +.bor-radius4{border-radius: 4px;} +.bor-radius20{border-radius: 20px;} +.bor-radius-all{border-radius: 50%;} + +/*-------------------------旋转-------------------------*/ +.transform90{transform: rotate(90deg);} +/*---------------------编辑器边框------------------------*/ +.kindeditor{background: #F0F0EE;height:22px;border:1px solid #CCCCCC;border-bottom: none} + +/*文本框只有下边框*/ +.other_input{border: none;border-bottom: 1px solid #aaa;outline: none} +/*两端对齐*/ +.justify{text-align: justify!important;} + +/**/ +#edu-tab-nav .edu-position-hidebox li a{font-size: 12px} +/*在线课堂*/ +.courseRefer{float:left; max-height:120px;margin-bottom:10px;overflow:auto; overflow-x:hidden;} +.logo {width: 295px;height: 30px;border-style:none;position: absolute;top:50%;left:39%;} +/**/ +.task-header-info .fork{font-weight:bold;font-size:14px;color:#666;} + + +.memos_con a{color: #3b94d6!important;} +.memos_con ul li{ list-style-type: disc!important; } +.memos_con ol li{ list-style-type: decimal!important; } +.memos_con li{ margin-bottom: 0!important; } +.memos_con pre {overflow-x: auto;} + +/*详情a标签默认显示样式*/ +.a_default_show a{color: #136ec2!important} + +/*消息机制右侧小三角*/ +.tiding{width: 100%;height: 50px ;position: relative} +.triangle {position: absolute;right: -1px;top:0px;width: 0;height: 0;border-top: 35px solid #29bd8b;border-left: 60px solid transparent;z-index: 1} +.triangle-new{position: absolute;right: 1px;top: 0px;z-index: 2;font-size: 14px;color: white;transform: rotate(30deg);} +.forum_news_list_item{padding: 15px 20px;} +.forum_news_list_item:nth-child(odd){background-color:#FAFBFB } +.listItem_right{line-height: 45px;float: right;max-width: 100px;margin-right: 15px;color: #888888} +.listItem_middle{max-width: 980px;} +.news_fa{font-size: 30px;color: #888;margin: 7px 16px;} +.tiding_logo{text-align:center;background: #f3f3f3;width: 200px;height: 100px} + +.tr-position{position: absolute;left:54%;width: 20px;text-align: center;border: none!important;} + +.two_lines_show{ overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;height: 60px; word-wrap: break-word;} +.two_lines_show_my{ overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;height: 40px; word-wrap: break-word;} +.three_lines_show{ overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;height: 66px;line-height: 22px; word-wrap: break-word;} + +/*新版讨论区*/ +.discuss-tab a:hover{border-bottom: 2px solid #FC7033!important; color:#000;} +.discuss-lh40{ line-height:40px;}.discuss-lh16{ line-height:16px}.discuss-lh20{ line-height:20px;}.discuss-lh20{ line-height:20px;}.discuss-lh30{ line-height:30px;}.discuss-lh50{ line-height:50px;}.discuss-lh60{line-height:60px}.discuss-lh80{line-height:80px;}.discuss-lh100{line-height:100px;} +.discuss-bor-l{ border-left:4px solid #ff7500;} +.page-turn:hover{background:#fff; color:#FF7500;} + +/*实训路径/镜像类别图片*/ +.hor-ver-center{width:80px; height:80px; position:absolute; left:50%; top:50%; margin-left:-40px; margin-top:-40px;} +.hor-ver-center100{width:100px; height:100px; position:absolute; left:50%;top:25%; margin-left:-50px; margin-top:-25px;} +.mirror-shade{ background: rgba(0,0,0,0.4); z-index: 3; display:none;} + +.position20{position:absolute; top:-60px; left:7%;} + +/*--------TA的主页、关注*/ +.user_watch{width: 78px;padding: 2px 0px!important;} + + +/*-------------主页块的背景颜色----------------*/ +.edu-index-bg-green{ background:#5bcab1;} +.edu-index-bg-blue{ background:#75b9de;} +.edu-index-bg-purple{ background:#8f97df;} +.edu-index-bg-yellow{ background:#f7bb74;} +.edu-index-bg-orange{ background:#e48a81;} + +.bor-reds{ + border:1px solid #FF0000!important; + border-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} diff --git a/spec/models/partner_spec.rb b/spec/models/partner_spec.rb new file mode 100644 index 000000000..06cff9d9f --- /dev/null +++ b/spec/models/partner_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Partner, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end