From 4e5d87f41cba54b3ef0fd73c76a1a4c8256276b7 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Tue, 13 Aug 2019 11:33:29 +0800 Subject: [PATCH 01/66] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=AF=BE=E5=A0=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 4 ++ app/controllers/courses_controller.rb | 48 +++++++++++++------ app/models/course.rb | 27 +++++++---- app/models/subject.rb | 8 ++++ ...20190813015633_add_new_column_to_course.rb | 8 ++++ 5 files changed, 70 insertions(+), 25 deletions(-) create mode 100644 db/migrate/20190813015633_add_new_column_to_course.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index db6ae7b57..f251b91d0 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -567,6 +567,10 @@ class ApplicationController < ActionController::Base time.blank? ? '' : time.strftime("%Y-%m-%d %H:%M:%S") end + def strf_date(date) + date.blank? ? '' : date.strftime("%Y-%m-%d") + end + def logger_error(error) Rails.logger.error(error.message) error.backtrace.each { |msg| Rails.logger.error(msg) } diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 75d515186..440c25a40 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -117,13 +117,18 @@ class CoursesController < ApplicationController authentication: params[:authentication], professional_certification: params[:professional_certification]) @course.tea_id = current_user.id - @course_list_name = params[:course_list_name].strip - @course_list = CourseList.find_by(name: @course_list_name) - if @course_list - @course.course_list_id = @course_list.id + if params[:subject_id].blank? + @course_list_name = params[:course_list_name].strip + @course_list = CourseList.find_by(name: @course_list_name) + if @course_list + @course.course_list_id = @course_list.id + else + new_course_list = CourseList.create!(name: @course_list_name, user_id: current_user.id, is_admin: 0) + @course.course_list_id = new_course_list.id + end else - new_course_list = CourseList.create!(name: @course_list_name, user_id: current_user.id, is_admin: 0) - @course.course_list_id = new_course_list.id + @course.start_date = params[:start_date] + @course.subject_id = params[:subject_id] end @course.is_end = @course.end_date.present? && @course.end_date < Date.today @@ -151,7 +156,6 @@ class CoursesController < ApplicationController begin extra_params = Hash.new extra_params[:school_id] = @school.id - extra_params[:is_public] = params[:is_public].present? ? params[:is_public] : 0 if @course.is_end && (course_params[:end_date].blank? || course_params[:end_date].to_date > Date.today) extra_params[:is_end] = 0 @@ -162,13 +166,18 @@ class CoursesController < ApplicationController extra_params[:authentication] = params[:authentication] extra_params[:professional_certification] = params[:professional_certification] - @course_list_name = params[:course_list_name].strip - @course_list = CourseList.find_by(name: @course_list_name) - if @course_list - extra_params[:course_list_id] = @course_list.id + if @course.subject + @course.start_date = params[:start_date] else - new_course_list = CourseList.create(name: @course_list_name, user_id: current_user.id, is_admin: 0) - extra_params[:course_list_id] = new_course_list.id + extra_params[:is_public] = params[:is_public].present? ? params[:is_public] : 0 + @course_list_name = params[:course_list_name].strip + @course_list = CourseList.find_by(name: @course_list_name) + if @course_list + extra_params[:course_list_id] = @course_list.id + else + new_course_list = CourseList.create(name: @course_list_name, user_id: current_user.id, is_admin: 0) + extra_params[:course_list_id] = new_course_list.id + end end @course.update_attributes!(course_params.merge(extra_params)) @@ -1075,9 +1084,18 @@ class CoursesController < ApplicationController def validate_course_name tip_exception("课堂名称不能为空!") if params[:course][:name].blank? - tip_exception("课程名称不能为空!") if params[:course_list_name].blank? - tip_exception("课堂名称应以课程名称开头命名") unless params[:course][:name].index(params[:course_list_name]) && + if params[:subject_id].blank? + tip_exception("课程名称不能为空!") if params[:course_list_name].blank? + tip_exception("课堂名称应以课程名称开头命名") unless params[:course][:name].index(params[:course_list_name]) && params[:course][:name].index(params[:course_list_name]) == 0 + else + @subject = Subject.find_by!(id: params[:subject_id]) + tip_exception("开始时间不能为空") if params[:start_date].blank? + tip_exception("结束时间不能为空") if params[:end_date].blank? + tip_exception("结束时间必须晚于开始时间") if params[:end_date] <= params[:start_date] + tip_exception("开始时间和结束时间不能与往期开课时间重叠") if @subject.max_course_end_date && params[:start_date] <= strf_date(@subject.max_course_end_date) + tip_exception("开放课堂必须包含公告栏和在线学习模块") unless params[:course_module_types].include?("announcement") && params[:course_module_types].include?("online_learning") + end tip_exception("课堂所属单位不能为空!") if params[:school].blank? tip_exception("请至少添加一个课堂模块") if params[:course_module_types].blank? @school = School.find_by!(name: params[:school].strip) diff --git a/app/models/course.rb b/app/models/course.rb index 25a017faa..7025b05d5 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -7,6 +7,9 @@ class Course < ApplicationRecord belongs_to :school, class_name: 'School', foreign_key: :school_id #定义一个方法school,该方法通过school_id来调用School表 belongs_to :course_list + # 所属实践课程 + belongs_to :subject, optional: true + has_many :course_infos, dependent: :destroy # 课堂左侧导航栏的模块 has_many :course_modules, dependent: :destroy @@ -176,7 +179,7 @@ class Course < ApplicationRecord end def all_course_module_types - %w[activity shixun_homework common_homework group_homework graduation exercise poll attachment board course_group] + %w[activity announcement online_learning shixun_homework common_homework group_homework graduation exercise poll attachment board course_group] end def get_course_module_by_type(type) @@ -334,6 +337,8 @@ class Course < ApplicationRecord def get_name_by_type(type) case type when 'activity' then '动态' + when 'announcement' then '公告栏' + when 'online_learning' then '在线学习' when 'shixun_homework' then '实训作业' when 'common_homework' then '普通作业' when 'group_homework' then '分组作业' @@ -350,15 +355,17 @@ class Course < ApplicationRecord def get_position_by_type(type) case type when 'activity' then 1 - when 'shixun_homework' then 2 - when 'common_homework' then 3 - when 'group_homework' then 4 - when 'graduation' then 5 - when 'exercise' then 6 - when 'poll' then 7 - when 'attachment' then 8 - when 'board' then 9 - when 'course_group' then 10 + when 'announcement' then 2 + when 'online_learning' then 3 + when 'shixun_homework' then 4 + when 'common_homework' then 5 + when 'group_homework' then 6 + when 'graduation' then 7 + when 'exercise' then 8 + when 'poll' then 9 + when 'attachment' then 10 + when 'board' then 11 + when 'course_group' then 12 else 100 end end diff --git a/app/models/subject.rb b/app/models/subject.rb index eb8930e3b..3ef513416 100644 --- a/app/models/subject.rb +++ b/app/models/subject.rb @@ -18,6 +18,9 @@ class Subject < ApplicationRecord has_many :tidings, as: :container, dependent: :destroy has_many :stages, -> { order("stages.position ASC") }, dependent: :destroy + # 开放课堂 + has_many :courses + validates :name, length: { maximum: 40 } validates :description, length: { maximum: 5000 } validates :learning_notes, length: { maximum: 500 } @@ -31,6 +34,11 @@ class Subject < ApplicationRecord self.tidings << Tiding.new(user_id: self.user_id, trigger_user_id: self.user_id, belong_container_id: self.id, belong_container_type: 'Subject', tiding_type: "System", viewed: 0) end + # 所有开课课堂的最大结束时间 + def max_course_end_date + courses.pluck(:end_date).max + end + # 挑战过路径的成员数 def member_count shixuns.pluck(:myshixuns_count).sum diff --git a/db/migrate/20190813015633_add_new_column_to_course.rb b/db/migrate/20190813015633_add_new_column_to_course.rb new file mode 100644 index 000000000..cfadc4ce4 --- /dev/null +++ b/db/migrate/20190813015633_add_new_column_to_course.rb @@ -0,0 +1,8 @@ +class AddNewColumnToCourse < ActiveRecord::Migration[5.2] + def change + add_column :courses, :start_date, :date + add_column :courses, :subject_id, :integer, default: 0 + + add_index :courses, :subject_id + end +end From 2729871a367f95f6ad25135b5d1e33d3ca5b9c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Tue, 13 Aug 2019 18:31:17 +0800 Subject: [PATCH 02/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesDetail/CoursesBanner.js | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js index dfdc6291a..ed4e58e11 100644 --- a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js +++ b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js @@ -248,9 +248,9 @@ class CoursesBanner extends Component { axios.post(url).then((response) => { if(response!==undefined){ window.location.href = "/courses/" + response.data.new_course_id+"/students"; - }else { - this.modalCancel(); + return } + this.modalCancel(); // window.location.href = "/courses/" + response.data.new_course_id; }).catch(function (error) { @@ -259,19 +259,16 @@ class CoursesBanner extends Component { console.log(error); }); - // axios.interceptors.response.use((response) => { - // if (response != undefined) - // if (response && response.data.status === -1) { - // this.setState({ - // antIcon: false, - // }) - // - // } - // return response; - // }, (error) => { - // //TODO 这里如果样式变了会出现css不加载的情况 - // - // }); + axios.interceptors.response.use((response) => { + if (response != undefined) + if (response && response.data.status === -1) { + this.modalCancel(); + } + return response; + }, (error) => { + //TODO 这里如果样式变了会出现css不加载的情况 + + }); } if(this.state.metype===6){ From c6852dda742d9d0378ded5e660e1511f629f00f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Tue, 13 Aug 2019 18:35:02 +0800 Subject: [PATCH 03/66] b --- .../courses/shixunHomework/shixunreport/Shixunechart.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/shixunreport/Shixunechart.js b/public/react/src/modules/courses/shixunHomework/shixunreport/Shixunechart.js index d19835f3b..2deffd5c5 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunreport/Shixunechart.js +++ b/public/react/src/modules/courses/shixunHomework/shixunreport/Shixunechart.js @@ -370,7 +370,7 @@ class Shixunechart extends Component {
Rf^_!A+)-M#8NF$4(1Q;P# TBJdccA~myoKg?I&e_#Ir0 Date: Wed, 14 Aug 2019 16:00:46 +0800 Subject: [PATCH 22/66] =?UTF-8?q?=E9=87=91=E8=AF=BE=E8=AF=BE=E5=A0=82?= =?UTF-8?q?=E7=9A=84=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/settings.json.jbuilder | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/courses/settings.json.jbuilder b/app/views/courses/settings.json.jbuilder index 1a67fbe27..be4470a66 100644 --- a/app/views/courses/settings.json.jbuilder +++ b/app/views/courses/settings.json.jbuilder @@ -1,5 +1,5 @@ -json.course_list_id @course.course_list.id -json.course_list_name @course.course_list.name +json.course_list_id @course.course_list&.id +json.course_list_name @course.course_list&.name json.name @course.name json.course_id @course.id json.school @course.school&.name From d5ebe26cb8bca0fef7409d2eb05cb736d428ecbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 14 Aug 2019 16:26:41 +0800 Subject: [PATCH 23/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/ListPageIndex.js | 24 +++--- .../src/modules/courses/new/CoursesNew.js | 81 +++++++++++-------- .../modules/courses/shixunHomework/Guide.js | 5 +- .../modules/courses/shixunHomework/guide.css | 45 +++++++++++ 4 files changed, 110 insertions(+), 45 deletions(-) diff --git a/public/react/src/modules/courses/ListPageIndex.js b/public/react/src/modules/courses/ListPageIndex.js index 9033b2006..3721a081e 100644 --- a/public/react/src/modules/courses/ListPageIndex.js +++ b/public/react/src/modules/courses/ListPageIndex.js @@ -145,18 +145,18 @@ class ListPageIndex extends Component{ {/*头部banner*/}- - {yslGuideone!==undefined? - ( - yslGuideone===true? - this.setwindowlocal(b)} - > - - :"" - ) - :"" - } + {/*下面是指引哦*/} + {/*{yslGuideone!==undefined?*/} + {/*(*/} + {/* yslGuideone===true?*/} + {/*this.setwindowlocal(b)}*/} + {/* >*/} + {/* */} + {/* :""*/} + {/* )*/} + {/* :""*/} + {/*}*/}diff --git a/public/react/src/modules/courses/new/CoursesNew.js b/public/react/src/modules/courses/new/CoursesNew.js index 4f21c5d55..8629ba944 100644 --- a/public/react/src/modules/courses/new/CoursesNew.js +++ b/public/react/src/modules/courses/new/CoursesNew.js @@ -41,7 +41,8 @@ class CoursesNew extends Component { searchlist: [], searchlistscholl:[], listvalue: undefined, - fetching:false + fetching:false, + boolxinjian:false, } } @@ -80,6 +81,9 @@ class CoursesNew extends Component { }).catch((error) => { console.log(error); }) + this.setState({ + boolxinjian:false, + }); }else{ let url = "/courses/new.json" axios.get(url).then((result) => { @@ -96,18 +100,25 @@ class CoursesNew extends Component { }); this.handleSearchschool(user_school); - + this.setState({ + boolxinjian:true, + }); } } - componentDidUpdate(prevProps){ - // if(prevProps.current_user!=this.props.current_user){ - // if(this.props.current_user.user_identity==="学生"){ - // window.location.href ="/403" - // } - // } - } + componentDidUpdate(prevProps) { + if(prevProps.current_user !== this.props.current_user){ + let user_school=this.props.current_user&&this.props.current_user.user_school; + this.props.form.setFieldsValue({ + school:user_school, + }); + this.setState({ + school:user_school, + }); + this.handleSearchschool(user_school); + } + } onChangeTimepublishs = (date, dateString) => { if(dateString===""){ this.setState({ @@ -207,18 +218,20 @@ class CoursesNew extends Component { // this.goback() window.location.href=first_category_url; - var yslGuideone = window.localStorage.getItem('yslGuideone'); - try { - if(yslGuideone=== null){ - window.localStorage.setItem('yslGuideone', "true"); - return - } - if(yslGuideone=== undefined){ - window.localStorage.setItem('yslGuideone', "true"); - return - } - }catch (e) { + if(this.state.boolxinjian===true) { + var yslGuideone = window.localStorage.getItem('yslGuideone'); + try { + if (yslGuideone === null) { + window.localStorage.setItem('yslGuideone', "true"); + return + } + if (yslGuideone === undefined) { + window.localStorage.setItem('yslGuideone', "true"); + return + } + } catch (e) { + } } } @@ -265,19 +278,23 @@ class CoursesNew extends Component { if (response.status === 200) { // this.goback window.location.href=response.data.first_category_url; - var yslGuideone = window.localStorage.getItem('yslGuideone'); - try { - if(yslGuideone=== null){ - window.localStorage.setItem('yslGuideone', "true"); - return - } - if(yslGuideone=== undefined){ - window.localStorage.setItem('yslGuideone', "true"); - return - } - }catch (e) { + if(this.state.boolxinjian===true){ + var yslGuideone = window.localStorage.getItem('yslGuideone'); + try { + if(yslGuideone=== null){ + window.localStorage.setItem('yslGuideone', "true"); + return + } + if(yslGuideone=== undefined){ + window.localStorage.setItem('yslGuideone', "true"); + return + } + }catch (e) { + + } + + } - } } }).catch((error) => { console.log(error) diff --git a/public/react/src/modules/courses/shixunHomework/Guide.js b/public/react/src/modules/courses/shixunHomework/Guide.js index 29470190f..6be0ce3a5 100644 --- a/public/react/src/modules/courses/shixunHomework/Guide.js +++ b/public/react/src/modules/courses/shixunHomework/Guide.js @@ -6,7 +6,9 @@ import guihome2 from "../../../images/guideimg/guihome2.jpg"; import guihome3 from "../../../images/guideimg/guihome3.jpg"; import guihome4 from "../../../images/guideimg/guihome4.jpg"; import guihome5 from "../../../images/guideimg/guihome5.jpg"; -import guihome6 from "../../../images/guideimg/guihome6.jpg"; + import guihome6 from "../../../images/guideimg/guihome6.jpg"; +// import guihome6 from "../../../images/guideimg/guihome6.png"; +// import guihome7 from "../../../images/guideimg/guihome7.png"; class Guide extends Component { @@ -123,6 +125,7 @@ class Guide extends Component { page===6?: "" diff --git a/public/react/src/modules/courses/shixunHomework/guide.css b/public/react/src/modules/courses/shixunHomework/guide.css index e571884a8..cd7ec9b0b 100755 --- a/public/react/src/modules/courses/shixunHomework/guide.css +++ b/public/react/src/modules/courses/shixunHomework/guide.css @@ -470,4 +470,49 @@ margin-left: 27%; margin-right: 0; height: 40%; +} + + + + + +.ysldiv71900{ + margin-top: 16%; + margin-left: 34%; + margin-right: 19% + +} +.ysldiv71680{ + margin-top: 18%; + margin-left: 31%; + margin-right: 14%; +} +.ysldiv71600{ + margin-top: 19%; + margin-left: 30%; + margin-right: 12%; +} +.ysldiv71440{ + margin-top: 21%; + margin-left: 28%; + margin-right: 8%; +} + +.ysldiv71280{ + margin-top: 24%; + margin-left: 25%; + margin-right: 3%; + height: 53%; +} +.ysldiv71366{ + margin-top: 22%; + margin-left: 26%; + margin-right: 6%; + height: 53%; +} +.ysldiv71024{ + margin-top: 31%; + margin-left: 27%; + margin-right: 0; + height: 40%; } \ No newline at end of file From eade50e738b3a35daf75fa3f2dba64fb32cd8b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 14 Aug 2019 16:27:23 +0800 Subject: [PATCH 24/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/images/guideimg/guihome6.png | Bin 0 -> 12638 bytes public/react/src/images/guideimg/guihome7.png | Bin 0 -> 12289 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/react/src/images/guideimg/guihome6.png create mode 100644 public/react/src/images/guideimg/guihome7.png diff --git a/public/react/src/images/guideimg/guihome6.png b/public/react/src/images/guideimg/guihome6.png new file mode 100644 index 0000000000000000000000000000000000000000..dfb5ad2a181ca956d60396839d136d00c4b96d2b GIT binary patch literal 12638 zcmb_?cRbts_psJ&wbbah3$?l^Y7{X-jH0fpQG2TrBPp>%j8H{~*6mf)rgp^MGm6Va zi5)vtwM7sF5qY9|zt8XYdOhFg^}JrsFMoVi&U&A7KIfdz`<&MXdRnZ^+{_FN46NF} zYZx*xFt*dLThE=PA7gk~;PexhkEXeg5zNU4Ztn$VP;-Pm0}E)o**k*`!S;>;o?T!i zI@T>$V{;#K-N!%&n47r$F^sssn+F}6fk8>d-^1Pk3ic6r26lFJ2i+t#U~USyI)ZMR z0dysGJ=DQ2uD>I^z(xo?V+RD(LBa8+in4%`Kaftq4eVnt;P3X_-5cl+y7`kXkbZsq zSmLI@PY@p{=;nz~=DG#~>M$>`06<(;%;CO_q=1})_this.thissetPage(7)}/> + {/*
this.thissetPage(7)}/>*/}
8l5|XlF zlJ|j<@<6Hk0>6GY>D;^=oq&cK4}bBZ-+^wr`1p7LB_!Z*xHw!|9OmULabH0}K|)eW zLP|=E4k6|p;O=AZFXrxj>mLdlU~dO6R}UXon7hC+Mf+zkUmws-x}+ydaP#;#S$FSW zYN9Jl!r$IQ;=Z`#@sj=l)YbjJgSxr>8`|5)5d6R8{XY`+HV*IrOBjN^VZL4tbi+B_ zI%eeoRQCeg`@p=6VX)`_Xwkq0<^%I~fq4k1s|(!KwRdoJKfV|KiJ+?s)OPpwv3GX> zYiodR(n*NBx;g>@_vK_Y Ni}IXS@{Q2|KMuC9DLot z?mqwEI{q8?q2zzWJ@y4R4?1TJu$QYJ*zutk%uV3unt`tWSr(1|NbeV} 5U0cnf-VZpYRR#wD{WEQsx&0VTBH+JlA{cH4ByI;<)CHT3S87|nb6x7Kla!&tQ zA%nWU5Na*3K&rEqgh8iVSHY{Y-ly|)&A-v{6as}(UQhGPvrCj=@z#nR%~f@E`vKK# zl9g)>web<(scWV}sP`LPC^6+E)e8&^=h{{It7>Yn%k)JkIDP%3FAD%r }#}F!tvqyP*>MPT>*O3`t4Z;F>`O^l8|1|==&maO_W{PR_;ruAytq$1mB|q z_w`M^@3%H)S5;L-jRMVR+57L%uKo6mfk9Q^>_K0$qit_I!^)^yefEts)jUi38dX^* zCMU^{bq}Ph&g4U(L0Sbj=xlDW0opk)xVgE_sv^{VGr*lA+ &ythb2X*GcTN*!t%A^+SdJNu@ukrID cG< z0)Y_tuM>h ^Z)#( e9^AKLd#ob)){pXr;&i0{rZ0wH>xy7gs=_7;bK)!mDqpcsl*Kc lgH`37fk8y%#B6EP zTbaal2~TP2UIl#Vx(L%WVyZacWL2zZy?DOM8(3R8h*{ZcJ+#pM4Da%{i;#@KqI0X4 z8LpjnvGyKMP))HV%ZG}7jL2 I@_eD z?ljxeTvhI-EZVU1!AP}r!JyH`ypvbJ!1=oX=V|SDpIBFI+`@<#tEcH$;<8$eVGC xD!m8;+B<;1f{ bdzLsuZ zrTA;VzqM9RsruUA=93dzh>d&XqG>>Em2dwU7Bcj*8NobW-&JF;xl^P+MUmemtKhhO zu3ibUsmmQ*CVXZ{tV+H7_vMf)Ug||T>&|C@x{3p|nUdS;*Wc{SKv+3WgZ+70x2` 6mng+wUy8VN65O?1BNdN)@$X^ZiB zeLQkbc@0Sr8fjg8$8PPYlDjiclJC#|8Fc8`C{Bc1 3RZ9FE6x6K(wg#$w$&f@oC}U0sMdJmNFLUCIj9>N{~G!- r;oOBU zhHlPQMndx{*OGWdUy8j>dbU_(b#5DV#n_*%N#0ET)MG$ureFC4j$O->;VSF(xN8RL z&QD!eF6dASCMNd0NS*4|5!4SRw|JNi40M_hsaJQm*KA_`i^@1;TB}Mm19wdr>J}59 z&E9XCLR(_|(|jb~CgXCUlGpAnC+046G3#q8qM3V!r3Q%wrSQL6yK#)p5&QR+JrNa< zXH2nrx7$}UZscqgC-!~5ba}#V9 Ao=nv^#>%FHMh ztv=O1J>6TvMXw8 UjX# z>X3Zc?9cPV3(#WmMS+;KbCcp*+8O4)K@(^tC!7=v3}Kv{Vl4_PK X}WA} z-)T(02!sj_(V #AdB4AEDuf9Ck%jD`kES7c=5Uw)I% zYuscDMjo+Poz1r@I+}Kaz+jk;b-kbYUh+FVeMjCEz`M!~jsHt^y1wTKIR;2mJt;tt zDP4jLkvRCrpL*C >2=-G($c4^ zY1zk$;PiBndiSL~Xn(6$QBjdtft`}37jY?0H4+sjp$9*3Y$~58J32bT*Ax}gxsPj) zjEAe}ioRzoUsh5US^YAaJ{J`co;85R*lL%pS@L5zl%C+VY3|jN*}B`QCY+ 9=<+DoxSKs6H(k_i-{c_9Ub4TRTNL^ASq! 6OvKn4HSPmqRo=bf0pGL2% z=x(D7q1TudbouI1Q&Xj{b8|bDYK9&>#dlH&3*0QNq|O+A6|*8B0)#y_|I^?27|Jd( zFkBfpsq*OM<*~+p`3T)fkMI65?yt)4msNh1QUWKY`kzFMK07@ 6U{2pc zVZ8f?NIX?sG|DP*FlMzOEG|;SuA(@uspvWI<>bD!>5K!I5WV=m((6;)4rMmDx_s-R zD1~g#6$|y(&5H9h?HJxmTeaFp$HnC4$_>{xI-rBPx}gW9ys|ve#Pm2hwl+L#ur2-? z%&q}b7 >k4q(N zHl1N_U9U`DHf5{8S);)6jbK0_Jb`_mx|L z$;~=p^LEeWBrNuedubW^4W>l!ypb${Dfn=vuL8UlD~&a#iA{d#xg|@y#u8F<^bJW1 zv*$N;IR0FblxmuIR1xQ3a_f0bdUbe?!6lDuepTNwZ|2sy;Dd!-e~Zg#{-P~V4Y|~^ zuQp{FVe^)MO|NvvV8gKJYdTsc&cZgiwKQ(kB;0kiQN)4o%%7 Rt;Hj^fC*5^aZj?zmE2l2iN;w={4-Reym*94fJ|hJyX}EXq-(kzWQlfq+ zTp5LjpGKPI4?wr~eFx`mi=vjP{8Zj*J_*NrR;Ng}xO!LsadxEvY439FU_EtT)YFv7 z{MDT#X ##6l z&DI}rHRg5dMe1A1*j;Py?ZAIgQjjt0W##DB#oV5F+Ov+=&EkR6%y>A>ja*aV`j)UO z6&Um}j^z7HJ>6AB&9fG>y?q+5SmmQ|b0UGd?2ic^o6*7-)mSDjVX&F#I7DxQn{8_L zo_C_}=;D0q5?pQa2L(Jjr(`vgcpN+=MaIIgrxoQ9$ 2+ZQ+s1D$191 zwr~98dHe^nz~ot=DE_f7CG`s6%uz-hQe$YOeSbxYDJ$9EV+ ZYyEX%PyfgcJrVo6>Yr^ZkLs zBi?XK)h}Ns0ealzxfpkQzo$4;@><+w4YK*65*G?w3#FD0qUt-RD@XW_SJDIhMV= z)H;;|Ab7tDlh>^XQeD5c3mX HuvP>^t3aksqD_?{Z5_W}YVs(R< zwwiqKOI^FPGV_QbFWm#UcJSHq!`??TIh=WS?;Uid#vYP&gk;!uF<@s=OwCqRwod@s z^1ZduQ*R!g)Rx*3{+i8VzEI!K>pZlt&0-Ft;3KX^(T`q$&5-Z2tuDw2qLISf>ij)= z4bbv5;(JtMz)}%VmCPMM$_n2w#b6@%?}=5H-(+sLV0y;BH{I`Oru$r9?@_Nl(v6JW z5KtWIKF!W=x5MaqCI%K~VHfcTAlzsZhT|*QW?b5%URg3}%eTZ?6;9p8jzQgZ#7cS? z%aTl#FY1;UC+9J)XJvH?1zfZV4>0lhgQ_Rtnji?OGIYJBH5>ebUlLPZ@TcKB_ZryH zHyKg>{EfuDcXr`Heuj{c2{VZ+=i1+eJP_0_f*Cp`<;!knaSdU~mjn+2)1#}q8bAWe zzjbBq*4UakDOwYC!$uw-1U^|Z$p_wFc8x1-R$(KP;>oNH`;lVa^~BX2E+Iw7I$fmj z4i^s!Dz8qO4$R^{;3!?!r3OnZ*FS5ZBxf5B)hanBN;t1!eS>I+llq*- n!nYUA>4M!hh+bV1bSk7I6IoAlKb@UnJ@Z!&$%M@B=*mzZJ*DQK6LES zKh(H*oPMM04T3Ph-LlC$e6ls0jQOsz1PhfGW*i5mgkB3SC-wC Dy(7<|>)D+6qeV||H-+ErtyWt9 W H_JUcA=_MvRND_%+tUC7 zsOlR&|B`4jCEJ%uDp ;qVJmoFO+t@4D7GLd)}%Rhl!-f5sbXbEm9 zy@d}WQDt*kreup+o(Do|4WsMD=A^=vm}>)ba)Xt2_IedcSlmrZd&l7oTCwGN8_}DF z^7;pOzUoee=HR2ak9vC%0k-*0QR9ab?)4fPys@A~p?AY_p~bM#*TojiX%JvhY$hsE z`O6GBr4f9*E7jt1?k}CgT|vc+!7%(sj!0-}1zsdHUskv3vs~o2?;xgCP95Ec@D0g( zD{GqeHJOGSEUT-;I5QTs)2o>5+=5-Q8~AE)HrylDk>~KJ3;K4Bk#@7$eU);FHaX(i zm&xbxz-Zf{l{BD6$U6)LKoyrVYyf{EH##TxPZbwaOnWPUH3x{k`n&%3wh0`V^dx&E z5I{V (>zo{KAF+8BJo_{0l5A?WW@UuihdUmV#jI(-glEfBqP=UG4J~`0eh~-UTp|x{x z0v~z{ptwgCg7RJuPOPV9(L&nsJ?Vj^!+?I3KJ#`|%KS?EG)*IxkC=z|8u4E>{D8IG z|D-30idxPdo={I^?%TlRbg2Xa&j$q8omk-2T-#hW^zY&_##_Euz0;UtW3v`p)sE&v zKwyvXriJ$5Q{zoXe3|EoH%oFRySnA5s&W^ed}h=cd6pkuqTbl}jrT!;dR}KYJz&)5 zt}jGOW;0rkRA!g#1eWUgg+X}jR#%bs9VCa(gjnTotT+xx!`hO)VegP{5pj{Kq3Unr zyi$eIJaX%xxZ3FTeF|| %^_;)p$}Oe?4^ W=ar_0oYp{C+I?L$ zMRx@b_KJGV4!{1_QSuzHB}&O1%bD$^khCb!p589Dp_w1@0)J62`gV@f`g|q(cbJB{ zkJoD4rH9%DuL*dnw`tdwR1a*kw9tU+GDwDwFpj)m;huwENwE_Gr1i11he!zxvmu4E z$QvB~ibJ~7qK8LEGC tj)6?IFvhe z%Cb=XCZ(7bmNSF+g#8)vClqY3yPimxuU^jk tFv|W(Q9i`ZxNw_4#K6ig7}P>c zMU;53ZU*lj&X~9-yd?mZ%RH`#nCLXRbpYD+M{22y6wh3UH{h#*ResLnh{|HANn`tY zJv>w1Qu|A?Kw&tcUuL`P#cEcl_ZvLY>WckmOKw5I-_8}$qNof*%`)2%QLm%FanAkOLvV0}=&IFrf4f_5IxDJAR6*NwE$oZo@k61Ga z;*h8=&q9D|ToKmU!Wg~VV%*XE=U_RTJ|Y59d`-kH>PJezRxTzWeYz{;<`3TiZFEDH z)AH A5DYn671W ziOT2ZDvSG_Sy$PBiP<^^)g)pkn>O((%ZjI6kw&EiyEY=yV=Do^O8)LHkq{O9`|+35 ztq+jj{B|f5tsAN{D{2lPc6V&xlJO^#cd1D;5%yYdtYc9e*-jtQwIA^Usdu>BNM0(T zMiouu1GSnLq(Z~gtsliDF|V)7d9&ScDhI*+WvJNduawBAR>&KWNM5_P{IsT#+uJoE zUf-k#yfY*HO(KH*W1=eTCIa*83OcxgXVx()hrMUoV)P7x+G-ZNPhDtV4AgRYO-yFb z)BAf#H3S91tqW;y%h{$>^ywJRYF0I)dKGUna~-6lE(nQ#*Xx&=*=&sl9|0!V6!T7R zhHDeq`ULmkYCT6@5C86FHizjVAlFA?Df)oz*eIGe%X5sV(h~cbkulgD8Be?uqbEYW z?R?!O88ufVT+mNWiXPAV@!Qx}tf}D&hzbS?OsYY z?JTNuFNRXJ >pLulMM{F~!Idvv&yE4T;oF<4VryYN>K5gHeNbg_sOCI({ZY^i3r&6vwC2UF` z?Im)!NVEBkTrdPJb*Re;o8O&6U401PVww!fgo8))mH=7^VuL-e(={7>wsCT>cE?KN zeSl4qnHh6?tQ7D&GmaTHKdb2P`=z(3C;_k=HgKvoNit+&9nbTQRY{P!DS%?&fLV7h z8PYy$1D!0E =0Gk@faB;W4 zYu!vk#f( -Xw+du%+XUw?*aAwCj}bKt1LrH@d)l@5JsAQX+7rY-s4fIb zLlDCcH74|qW@yVoF2JlyQp;e7^&I>D!3vzPB{jLIsO?v>rnPtUE`joq);x1j*A)7P zkXLiy>ON2<{Yq`t{K~;>>|u7#^ie>7F)|7k{x$>mU3lt{{PBC|9w$(DtT^0TL z5nvfH8_k#h9l(5dITIA(GJl(O@_R3T1>y(w>B{CB_o!Jfr8)k-O>YT%!N!CKXh}^Q zyCLF=!`1Qv&O-9f7>bPser7ZWTmlV+50VK-Vl#>3V~wh7LYD@6J5A<>9qC`6!Mod& zZxC3UW0I9PRu3j?1N_bfNJK8n684pkxNcmaeeGV% ziq!&-2cbYA16CItSpjmR`t9gP >lZ8I%WQ!mEA-?Sw2<=lURIDry&x`%sh59Rasx2$> zz<{(EFu 14tocigW-u5tvlV2Ixo$> z{=S+Vt2~X>5b!9xBi_3RiF6)UQpt}^-?;Q=+Wl7*JWF@pLVlb-4iUytvtmk)jopl} z`fBHB-1FnA?4pn+(>owXNRxzf!nRtX9H~hKQ4$`kAUE!fS(!u0{jhG6Yi@zIAyD3^ z9>d97J}6&v6+hG!*d>6sF?$W>)dS7iv$CS*`H2p;uyN**OpEoAX8sB#OOHU5mi-7i zB5AA>x+{xoE*Oo~EP6WU8t={xtYs>fNHsjcT<*bt6d zr3$4BB5f)UxOWV~p*?1?Mk6aIK&u(`b~j_l>80#`X+*apJ26i~h@rJ=a`s>jCIo#C zqxeaLoyK99_Q|UD{&p$~BrdB(Ev3IvXDJUGO58GHIaUe|>$6*{`hkh}RSQu%!n-1p z_+4-sl=p_p+=O#)fh#1fWc1oWNRa3p0Kbht1c<*q-u(;x;Qs7#= 8KhXQKcPm7oBc%t->?P&CwUWYs9cnYv zH-15ogLa`sV^SVuYHoQsGhl6#AWMzR9=^WAra;UZ{nxuE{!e<3bhU|s-%=GO$*IlH zgZWiliR79P=C-KYpoAMiI`(5kWFKQWqy)R+3fVdei)PC{(8;+`(7Y~mVatWK?3fDq z6NXJ({OiL;xI5+B)^JG5hwaMfy@!Y?@ASoc7>dO4hB+tTFqHflnV)7q^5i{)! tuK$d0wT|e%(y>DEFDbowKj7NCTy0(8g|OmT=Azh&O+FB$Vl ufO;Pded$( Me1=hh2}tpG~c-9m7PifIQAlbTs7He#Xwi0i*txQz&zCk0vbv! ~9i@;7iuMz+(y z$~b+eVr1AfRn^UnbeG5X4v4p7=>YTY5Ku4f|Du;9Li88B2M=avO^(tIp~PjAH}qa( z5|WZovLsvq<5b+0QM0Py`WfA@*<`+A+c%@War|Fb{q>si-;-@$1J;bRDwia*!Z3rf zM!%;ls{wotx1Sj{a}`3Qtg=cK?mN`YfkF$Mp5R~@TslJ58Dx1#9WnOjrzuwHrJLjd zm6Id418QJ!-*VpyP;+niW~0>V^~hI-c_!S~5n(FL`4iYrcG44T_WltPBt7;o%wx3D zMe+u HOB$EL5=}Q6GTB}~5HjSx3Joz_5jIbs zj~TE3N){yDk9c1cM4`^4;T2KydWPwBdrh{h_9{>iIU2J5LOKh&6)sApWW>tAmg#o! zwajI!FcvLznns1O;b rV;R@Ci+!5LOWnPsd=`;*D~qqFr^xx>x8Gf!l){HyXGGKM(8P!sXmB>NxRv8E zb8E%ne%b7ADNzgkUW>C|V{L(N)iVw5US^JvYJHQWRhU?u!VAekPmSB8imUj)k4ZiH zBgvU0#T1G=P@ LVdQoP%@r8O(f{yp#rj>ewka;cB-1zYjibcRpL~n`|$@UvXQ%G@P z?~t|~z9WgfZ|crE$2&<73U1bsiqGS7gX`_&Ur!s-PC!ziuyUy`Jb7WbT0XONac)UO zg)!msxd(6y1v~Y@C4|4I=;zIBGrP&P9>ne94;5aiNK>I7_u%!I^-+UMR`d0+M0k0} z8-y24Pvy7oRYmv8w<_asnv=K8b8ZBoAHTOHnTnDOR}oJl$WM&6!_jMrq=t;e(JkUk zF5r+C;!gV%CzR!jFpBG`t!hA`lTE^}gYe&TxF_@CaW3=SONw`p)l$*`yj*ZvP60l3 z++s5HxCtfseUGzt#b2{ZpSC -?6 z{avc?v(s00gsxH5YT-gJv2>Z@- %4YaLyQuJ~)zQsMG|7HDUG^S)azHnc?WCRu0B$?+&aJF47B;-CN>m sB(?uT(r#3eft|~|b#k-hPEteDRc|X=-_nmS zIFZH}OEYU5d%m3ws>VCyn #+1GiU*IY1JVbwht({t za-2HO><)-JAXeKgc|#K9NDWA0$&S(L%McgT&)KhAD)ip*(Y+ELcR9HW-~M>W*-Nwg z)#1x}ax3{~8}NU!$M^ryRs1E!(`~LE!DG2Xj|S+y+f`33t xOguccDGY3c2z z-161$5+-Du@!dh9I2iz7IvvqWK6<48b1~Z>j+*LfK4{EhsY#?b&t&gfe0)6Vq_-*g zdsr>KO$%vAETFu5_f9V6x}5vW-sT()!k$nTcXs$?Utgb?X|Z)3oIX@&tL*0P?M+fU z>5g)KQ=OWaK%`8kK`mBus&KXxAC^}3GVs~-Gjjw}w7KUS!dqWAJ0AStpj6aJC!W!9 zyc|4KUthmIM6DXNT)o`7(I53a!7gOq2awJu?euk0=<%oi)ud;LpTlUOA?1(}lv$GY zrO2qX-LTyVpfn35@)xO=7q|=4D@pd%4};H9ZmwNFY0F;-rRzm*byTtc0q=i%?2=-S zh%M&tG5m)B=k%}c?yr9Sua@tD6R&8pMWR8Bs9ZetxW7*y_!BpkMa}x^TkKN>isp7r z^~$``;_9!zd2=F3+mNzpE^ed#3?t_&JanGXRIh4FLxeL%r?)V)@y`>O{LvWnp^U?U zr>U*m{ErkI>yJMS=89yT9eZm6Ur(!@w4#T 69t{*+ zJr*Nc=~5AoTaN1=GcZHL`n0-ne%QAd9J!NLJ(ws`vWa8mg8ZD-d-~(a{GyuajO)CJ zC}x`jXrK%Rlb1FVjIhXdoup!C<=7LEmL!Ty`^vYTh-z7m !G>xsMp3U=!UJn!qkry5@?r{`Vw5Yow49F2Y>7t)~35giV9GNvelG~YL zG@Zf65Oc_5*lq&2mEMvbLLatuQ%_9Nq6(?mYC07X6COLr*-qcQ7IIGG;)`5l_vQRW z>ma-XG+NdDwkRdd5yys^>=r7jwAi-?p=D0G`u%3ymn?9Cc!&8MmwI3?aI`y<-j3c% zVOsDzG5*u++8J2qot&AR8tq5A+3?>Vf%Iuz-CWuQk+tH#Vgq${DSJ4}cZyOOX*=kl zBWF=3y$t$s=@*9*nFXRjG%>IwPT16T $>csbmB Z5B0HY_V^RDrwl%D zI2K3fjuRz2L5HJCC0c*sv@meeUnXl7TQ?gUn?PSbKlje7T$U3|6W1n$Cggs-z5=@R z!KnB^)Ov||*>}eWoBfgY1V*GkikNK6eNVU|=UC7Tei<1Vbh8^2YUK7KtR6o$CJ&pc z^(1w~@MHew6L%10%|CzjWgaTg$IQ&kr8-2H9v&V~YcJZJ=yls$Af7(UF}LPatqZm9 zxu8rmLHOzD^rX0)%#$*l1#;*d2Q!mG)85Ku>3e~?w|Llt&Y8jnS5$Ry7xI#|FP#ja o{=Q_)axBpQOJI)7qg{H+fESKMU2gBsJI2!1)YB+_@btz10(!^ubpQYW literal 0 HcmV?d00001 diff --git a/public/react/src/images/guideimg/guihome7.png b/public/react/src/images/guideimg/guihome7.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce5f16fff237ee0c737be4505760df336e038af GIT binary patch literal 12289 zcmch-XF!upvoMSWQHpTeP>^avA%qSBp@@idr1xF}p@tfosGuUCB0+kQ9;y(K8U+ER zL+Dj%2rWPY0RqWO@qV7~$2s56bNxtWcW36>otd4TnQPx@X(%z!vd~gdQ86e#eXLDI zb>` TBg`M rY%_k*|}Qd3b$%lf%n**M!lIj!v+oLoWNxLOo9r;{y++dx!Z zK;2!z&e7> Il#KqN1(htOa%vbUdKI#T? za~`8Wok83ulQLA-;#6?+wBr=z7X#P`iU@FuKjaq_6A%#< pIsgS9K70ri5CRGb z0S++$UjD97D?fm%*R6j!Jht<)@pN*BI=Q)W9&xm?cJqdUxDRJ~vIL0xf7rTu{T0)p zz<_>M?m$6)fukk;i>R*t|BniR{0G|$s%`h*`TmcLy>$KE?SR^LUT)r=HiwF{zjgE~ zcS!|LJ1eN0r>>iu%fC|8a&&{bc{#edb1Eos@~B(cIJq9R?;jJWt4k`odO@vRZS0gE zgSZb_@H;u#N ?x3yX_MJQDhs_OY9dH^j~r z`Y)~Re`&@4SK1?6fVdyN`LUg+laHP46Hhk?=kb~)o&JZphzg2}DT+T4{a^Y0rM3MZ z=JJ>Je_sdia5BIn&HjHh{cqQy`5b}&vD?GOe=Oh5_0Zfs5AFIJv-1rqD!xMr$m{xz zu1s7=PF75zY$V!ppM7*m;Gf11FHIiP^K(CzZ;ImQ mPo@vh-=aH)it+$yJp%)xKG?o&+)$mMO-n~#MRatulh{GH zOE0TZ3_B=lx5GgOpU@q+Ae{CW+&`BpTU%7Ln!3HcUH&BcX0?D>z5zp7kpwzyn!0kG zPc_1;{+PYM&--%Zp9Ok|yYXg?r>F6J-u` Ji}lZUCY^;Jqr3e88z5mKmqw#lol;kEA8(U*515D1P<6x@$nr6{ 7k55p>%f5)4c;b~xZEu1q#a^ve0Q`r8IEv!9!HmcCVtIU zjZbx^beB@P1M+nM)J ^ZUYpG?-s7>$y^uy5 zDJdy&v-*Io*~Fflt_ni;V(*tRY0fq7v?CO%&X&_NYv06MeyrMFIBKUij}NnP>L}13 zH5{qS!X;Rqz>i=m @QztI|KNZ>=N&yk2*qgVtoq~W1Ws*IaO}XBY#X) zVJ}x$Fk@(T%t#KAt^+t8Mp)gnJ_eR8PXMaZ|FRADczweE)n9<~FDDnd4v8aAPZg^F zIM?_DX!_eT_~QhiI-96==4i;6ewOJ3p#2NT$(<}lZ`B`&UjDeM>bIB?(byKp>uenS z^YuSgeObz*zR|ajh|}FpdE8ok7dBl~H7WUyMYJGi{!n~PVbpYu{Ix6E=*=n8B(Z@1 z3q(CdQdF9}Gdum3xA=Snn~&kJOL=EaT6co*y_?V;`RU9^ep*~0Mv6uR=vup4Dd4*{ z?!Hpi>Ipwh1-=%7;y#F;fTGo{HfEaZgE6+`{oU!cTHG30JrX6gi?iBeP1IyP-z`IO z8Mcj8KPR15+_1N_rgTs|lo;PDLt42kHtP6AbOFm9G@iPt!@M`^6~{J7$PxFBzrVN1 zTC!zM8XXE>t(pq%>B_Kwc >#YSZ z zW-@oG-p?9jey*V%Wcc7fi;7BXO EE8NH@vGu^%19l_*C^NW&_5x;Gc@Z5}#z*;kWj<8S}g~mbn#s%VN@EGU-&8 zXJ#IQvVSzlkg%}V7-#e6%(FD}A$6rj*wb1nyEjp?6%+f9l%ywL1oaj@d&dq6Fm9s$ zc}CsBXKw@7ero7V0dSZ=S2f6D4PXvgtcWs}sq^oI0%WgHQT0a#M_9{0Aj6|>2 >Q(YLg9iqvzu&rZeL^yrlRb7sCST%z9Z*%hsy zEOYjJA=$g>aQI#z@y=)cR45eMzaP*R!e$W%(W$Y_!o}KG|I&}VzLFc~z9F1yaT6_6 zQ+f@bBa8eq3a>1|z0HiIFN*ef&3m?d@7ddX4i+IUgxTD!+25=sFR`i_ ypn?gZHrUqdV~=Z2-79okKxg6HA+1X+W?`n$r9v z2Iy^Y Rl&y)h z#2&;sd!g(R94{*L(!kttA!XSL=3Pt6WK7zt3~lr^B51*(@a6BAS8MpF`FTTreuG*I z=m#!W*>lci_Fu;xvf=p5gs>@*oY%~^2@N)px}7Ckr{(vHe*@FA)BaHh*5utTNa5hA zaTIl%tZQtOL#lnFkV#D!rB+HcVw4OFhE~=>zYPR0@&*lWF3>&Oo6m<8R0Jdc=)QW{ z5Gc_H#Cej^FRR=WW`mrfdYeU5Z)wyFOr6wBuqah;wtu(lrY 6=0fC`Wab*PinYghl=YM+1GSF6V6o^K)4~)Kq^2Gm`frPeE zRB+jOVzMFT#ncKl2ZqAQzFlz`Zx{bdF*?th^^h!-AB*cH?0p*B)-*PIb<3dT+VpW> zuk5a}f`N5|w+1t-Y-g-+^~8(qaKQ2;Zez9;1s!`GO%WY3y?j^gGgFRw(jZgotGno{ zGAj?+zE{M4P^mE8&n((%dbX^`Nk#RRM?(Akl{2FiK58-Gi$&@BsApKvr(H2!_xoVB zJ5K7oT67l)QY8n#f-)_x2FL!lNT=c?6{V(M?Kd{K71)2~!)1#6`3ks-?dIO;%bY8l zH>3Zw$zoOCu-5$!0}T#w=FRi5@XhY7ijF&7ll D+l>v3y#wV_8~)_Y$!r zVbMCQtJ=>)XxqKmQlgu2-i<{nD@eNkqo!hgQEoTMld?0KC=(R0gVhXSDX!aW>zSNn z*Do?202O_ppS_2wsu-#pUNJH-dz<)b@kL>570<6Ii_Nm#ZaLBB(^To^GY5?xc^n5m z^9rSl;)3KHh5 Q_E|-@V@U4 zEA8_iFZYj1dhxs#trm=dvh$YAg8Kah3hidAi*2s)Vm5L1L8))oXre`Ng3W<3-88rO zdj+a#*!?UGD;%Hs-ZLhxR#^=D%|@}#zjwSj!)j9S8wxP^JoD{cS)^Z((NZfPYE!SB zQNNCnS1jbuq{X32Y?tzW2VzH9UTNjhkg`^u?}VbGQ!*vkovH_)Me#@PrRQ|C#bzds zavST {jLnWL#jNqDvg%EQwA44H{B`Sq0K*Oz=nS?X`ayy zL#9T}uFGNlQzpGki$!gFsX5s+A&BwoJ!REUVZFP}q+E1x MdZ# z*GoEP%PhIdlZU0DDA}`BijB5loPtc0_V-i>Mj_`Ue%5$?JeQ| `Lz&SHEV?p5$O6ce98_opLXJ+0-KP$}8-PL+-I&Lnk0|*G1%(k&u zzRnZ!R?=M^_Ku(Vd^4AlS3p$7cKITi7 ybJ`mtAAe?&1~-?Riw ckQ` zUJ%gxS&^xGB8NdxS{BAJIqf3M*i{PK5NA?+qq$ChG7i?QD5zHVoe33>#%=k@VCr?4 zQxNm~71<>QYm^NBXob2bO2%gPX5`nh`|C|s^KEgWG(DH^X{-z&SdQXOD#g+MPVYt6 z#>oNqQ-a4mFRn77+eMDR^g9eXwl}{Vl{XH i;{0u_5%A! zSS|dP$fPv>H+)wXNjQncKZW0nxPC+y`n<7J^_ZUNZ rNA@d`4gAt}vi%ol-ju zW2BE03K7;we^mbPko6zUI+0%IH$Z&)H^gBoWcc-{Bt<3g31Cv`g3m$~y4HtH2Zm=i zUt`i#&1oK;jsKV<_-``$-@J5c5wEvv!f&}IdU4~kppCr|A#mi^hg-~^fa5Hv=j A|eDyP#xO_r}=yXxwv8jlD3C}T}*a2 z9;o_`_>dDi(WHlieQ{#A>2nhI!kdX{YEq5tVinN1PFM}c*yIFz PAz{6{_7Cw)JRvF+6x=&?`J*fAe8&p#sQ#3w9Hf*6}pdO zGf;gYWEca2IH{dUzASE>h>>?s-hPjpO+6UjR&Pkb5xu0wNHU!dKKp)5yEnCt!S9Ru zBCKkMjBCE6VMpyBhCu4s0uL^#0^1iLmRSEZlzI{KV?K}-wjBOsrzU2vj$?;3@e|Wr zH|h!KDtWQLI~gS5N-1$nTHRMWoPIioZY|U~&hE-P$~TUZvJY;v7gXs!Vjp~`L}p{a zJWmmJbNBY0=p8SXRUqw6YSMwHN 656(&*bGRLWUXaK2;vjI+v=1`>_q2=Q!@-Q3V$* `+ zr$)EiipH!;NPB$W6AbK)s2^5+N+90R%x7@E@Oo)cfxMF$)-eZin~6z##$fRypd7#$ ztZz5gnvKz7$CXvfR 4xD*ISqS`}?-7C?cQnu*@%3LBBp; zKG?WdL+rt2M~|_ys}S|#%d vk*Q2bfzRg46~9&%5(JO}-{$~w z-u%c%G8k*=;0h+cJ>7NVH$E2RP4m9;K=otf8Jd7Lv-fOX^Dn@!EaFXdnFfA^bbVag zZTJa)D0ty@>y_jPuOLd_>ZBv1P3-I@They-+-Y=6M((_VYlO-T)uYl(Px6)XxhdvF zX=hvG!g9=3r|IC)TDju-I}H_W54H-px}4K}Hcyx4eaWKZEtEpF!L)N#NxSIseZj%& z6IWG4Ln#@YE!w^HpAlcv3!2#Pj`$3fF!e)6JlpBE?Nk{h)5>;bIp(}(lC=sx1Pd`r zbQnnI^#oPZ(GI4VaE0iRh|Y|z uXtiBIBdLp+o(F=gwTcvmv-(*QUtiTlM`U?1LlV zs^ z515H}80!YNxvBHm4cRi`)M94x6pIzguHB$2@U|{}>MST{JMUr{lwI@f4|mzlb-X$z z)mUKvN1vb!E>IQrQk!9sjlCzuz{*5nV?T~k>D`4N>f6o3KV}ZF)*-|+?;3>$Yb4BW z>!TJoSy4{~2jg{O2_-P9l2uA${LrosGA+&1Ie|`*1ZyCt(V)Tn!3c|=?@ #DM~d)7rLRPzfs2<6-^tEc5tm# levG!(6?kd_DfYJfisej>?S;Z$A~&8!E_1nC^v@ zy`@|1$@dril4zQ2tQ(dm(GqnA_I}l&!-Ktb?O*3b-}Mp?K!s@&X*auP)5Zvd;1vWU zCHBDzscFfteeedZJH9#k+sCeI_Dwsnl1+csHjJCAW=M+c&a3C1t;IZ?!PPW5u)XG& z9Hi ;(b 8hH)_G^;)j1gGHAzQk&>JQ;=whsp z?5izW_($R=d)UBc#`w HlT>ts3ANr%5#5tEC+xC7iPYSAfguJUCa%L7n zf!ohsX5^K0tsHk`-1crj+$BC@e9a6CE&OBNIfw2lxpJEW*NSwJGyQ4q#@tOeGLo8R z!h{JnX_C5w*8FwG_Vi&m9XgmUr$oIt{9^q;U!bms4qnDIVU&OOcap@^io!&PN&A7H zSrpO#!S{E>uNvElmC7Cl(osZgl0MHc?`Mg=KDVGzfAbx3%4%z)%kEWn$1BtuadjZ< zD_`9g>>(2-H4ujOpt?rsfriwSl*`>CuqoA;-*b$umOs0J1APser!oP=ux?g!u8^%j z@TIvR{)DOs8e3M<#sJgP8r1d+cEfy~T#0j=GeWpo^6mF;&FAIojP-R{&MlHz@UXmO zRGL~MucmU&vN_nhU`vY81^q{gy_UJ$%PL>Ic2EZKf}bJ9Tb*Y>OLj#8_-0MeKr5ii z;$_dP7lsP^T2Z?s0Hv@QmS06*FLi qps%T 1PG45|Q?cXW$^V!J_P$UfVQtfC ziC%?G O2s0^ObNJFVKtlp2Y3-9_wEa3YOITdpwe%=<%cYwk*1UH#NaD%Xrr zI6Yy5UPEFwhGmN}aYBs?A-AO{IXeytB?wqLZgCa^ISf}yE`pHd_0i9JU!5A*1N#*( zLq>sLL%;F#3=%uQsBiA|X_{^oTWI5hTL(9jaF~{7!R-9_+4q=|LC|-+__@_3Dm9R% z+d{W@acXSgHtSTk?~czG2mI>g D4eHb*6HT!ukjY zqaP|MWuxw+#M3x0x#Xt1*X5$Bk|5-Mu+*Xg(dE55tgLGn#7hvt4!|DP_iDT*klStp zXSL*oZAuS6!dxxf2e1iOG0yaWEL0Omf(KtDbdPLzS79|@wu$~kzMfs`!YceJF#a{g z++jRLRKhGHueRV >dR?nka_S*J- 2(W>EWUMrgGRBMUVk*EQTm7=p>U^Q=pQu7e4~}nJd2c(3+Ib$uFi;U!^gY z?8*qfhDg6J7OxL%T5?oICXe}lFHD??zk?`VoL$aq5#5Fd>m=Bb|H$|K9;q&umzVCp z7O>_##aa9P@@#e-HO5Lf8KpT|hk~VgU+EYkJuCMf*y|?XVm (z=oER)H0C zPkYw?gY|f~c%5r*4d5d7l-lcz7>7j@{Z7?u-xHUz{h@2D5NNPyrZ8@97s9wTbfCSM z57Pa<4%PmyS6VH}ODI@pqa&&AB|vl(y6X}7;FL>diD$)|!hhWtYQpc1XxZH~mF1^> z>H1EA^J>Qwi11FizNfEROkF`6l9a;SI!Y)B*Dh(>d?dE7k37(d=>)&6e?wDeU>iwK zOl-X${Cr_Lvds93U*ft`A3RphdO?u zt&Zr}lnFWB2kEaR5jS!(EWS=YpU)7Yb{mj1pQRvt3iFibEl66|4e*1V^+aQ88J3!P zUDe!|+PR9f#=2fx>?S@wY?I|{Ne4DR2;k>!d&<={MJOpNoB`+pB4P@4KeW*EnKh&m zrFV%ZxVsWn6F$)Yrq__+nQgnQj(~+tQ^PnVBxup8udWBLt1KFY=DYvxooH@5qRw^Y zpr#YYs*g4rm{|%QBbfggE+@XpfTFMgsUdM4w4fB{pl1Amz2-fCfjXYTkt8qS6cnpJ zB3z`WbE@^GiGAxF%+fZ_#@AkYfRAle;ZEl!-Pzo`7%SM`IDURdCb^Zi&YRzN2gdB( zk2I*v1E)?k8b}^)61uOCX3v=2DcQi}?%@;QVtSov0SVhq;>}?NU}*qI+dj#`r>MRh zv4W$ua1E24G9%XPRR9e~$0$QP2os}#mOeb3jHVk_92@8KKk%T&%g*D2CtK_4n})`u z62!W40oxeZ63ApPRCa0z)16;B!Ta$5l--4Ca_%?!=tdd|3^bciSi!rh< ZZ~{jB3wQnvT^a75qV4V1Ce!1x94gH;ikC6njlq!OcGaNS>;` z_jb2mRz>H1V!pK>D5;1E_FT)>z_VbC@xD)!Q7oBxjSd7ey}^S9AaO$o&sdqIf0-9w z*8!Jm%3YQMmr*F&4@!b!fxhpv-F7GeMQ_LyHtOa5Hq6zF_nt5uxe~8)jRnYlcm7$} zUGJ%G|M#*6v5ulPx&RG6D%>I)V>9faZ9r{_JeQdftLw$wdRp)DSY}tqg2C_ 4KvlqV6j1rWF J4^t zY XBCFHN_d?=wukRO#>2x9nGWwOSKu2a3Gy0X$1$QMwIOss4zuLN^XeX04 z<(WC5@{c<^81Y7$*Z9WPS|8zcy=py#NVWqaW3$W(`FD4|X@Mb`gSS}%lsmtM @z>NRS{# $y<5a pImurTS?R|4$ zqc?Z0&3TYew^sy=?F0;wwe2!i1p{R9XlY#@AsY5cRJGo2uh(sYtBw8W3sjW_#4?{T zS6D&jrTktt{m4grl2-X3fs*oIY;xF{5v3R5W%Ui?PY~xIAsvm_X7AX6FFI`5aJZIb zb>*_FfzQ~LgxQUKG#+r ;BBU-_98yMryNpE9HgK>bE37KV@4{2n;LjktzM`(x*_x!?LL17} zG}JHLg_vcEujjZ=S7nf0pRru)EJMS%FnJ`&uxVHB*xcx ChP)L;=21nZSj zMw79V>*f7TZV7f*UGng^2L7xq#Ui^=011x0N0=1wQvVG&80yVf7JzBUw&bXhUhJ>W zvsib+L#? J% zAimnY{#vs&CZg@Twb3!FrL_2PqPJAA#hwHTaNEMZqWg=`Q6c;K=^u@~{yG*^XTAXP z&5w)R>308K6FN?!si^)|xc^@Np!!=^|Gymkdx0f1^tkp;b(B*aKF7%x71iHCOGoE> z$93NH;O(hY>Fcz`DVir2R$k28!7ma;2Kp9c7`D((P9L&s0cK#Vrz&q7K -*oo-*Cm!GyXasPLsB|e@XUS6F#B;@5pXJ zcI>ZkZ+`X{nz@(rxsHSw`rPC85BDbOW~Jk@6xH|d+73p-zr(|Yd2h2N94FRPatG>F z6?aB@+$&278YfG-E)fw+9Tnnova)ot&pkSp!R3>d CU6)=_ukynM`mufitr;$Gpm3% C2yl1W w#8CtP-jw0nm5 za=lpm3Xt`M5vbt8b{6Dqybb^_;noIPyLzUI?L?)H+%+M--9Z7VzI*^thc#YNCH?Zb zaU^~yxsn*%j2?JtEZTx4cO>c1+Umi~9*^yI0u>}M?Qv5>qplGr_MZ4D?8$`qO%Psp zKGZP9HoKw@?05B-d7ykZ!OYxbNsc$=F6ri##&fLjux?ZOaP&d-Zp|n-6;WS;ocLF* z_a|myB!+BC45%#7Yi6;aU14!$(SNeKf{>Tft@1%~L0c|)=$mVK(0QrVK4CKjfqa@} zzml@be~3!NYf4K{XJS3fZJ8_^pJ*8~nzu<>>h}3-q;Hz#e2g5n?0~iDzJE-3Mf3F; z)?eW3X_h)w)jv<+aoOf6=&q`_m8ki_Y>gW2f*^ew!!n&hPaFa@#&vQrt)FkOvfwiB z!1 m!({=VU#EQ#2TZiA`RL=WD4<`skboZMUdTdxn^c7mr$0w8~d)1#hZ zSWo=Mbl1&fDZ}VgDbMwW*-EChU7h<(Q6NLqY*6;y0dUwv8Vr^e!2NO~X*-0njQm$O z@=Kt-53jPR43R~&evB!7up6SW z zRX?N-@D95QE7xx|7*&ESH=4lUXaUs#hKX3yEb}oVlap_gq33e!y9(~;m2@vHsyqi* zj9klZP4T6(nyIWG(!urm$8?n)-gk@_mbuZG#K;3NA<`of2)*|{wOkmS&Fjsk+TBwf zr0+sT2RsiZOfwayObKhUSs%<#GOg8?_Y(q8Rqz~VDKA&nNcLfn2P1(R%05EBEbu zuDW@%>`>8MmdWwv-&$%@4TXg3Ns7xd<3&|;R+HmQ4aBX~d6ABfVJkZ<0Ta4~Df-?0 z#`@h`k}&| 3m{WJ3E5?Y}ju5rXvg_Vx%ra&2-ci>YQhRdT$mPgRJ0 z1-tHmg-$H?zHt*@{==^=A`MG@qRv5H1zeLpt=defH0eRuVHM(CH $W(^ON%^^m%sTuaXZ8471K$ z`D}NO4L$U^_t)(5-{IbCW5Il i+xOoC?1jSf5l!igQx%7j`*3^=hQjd_ a>g!bBq&ky1eDsc&tgNW Date: Wed, 14 Aug 2019 17:57:15 +0800 Subject: [PATCH 25/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/courses/members/studentsList.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js index c3dc2c6ab..2a510789e 100644 --- a/public/react/src/modules/courses/members/studentsList.js +++ b/public/react/src/modules/courses/members/studentsList.js @@ -218,9 +218,9 @@ class studentsList extends Component{ }) this.fetchAll() const isAdmin = this.props.isAdmin() - if (isAdmin) { - this.fetchCourseGroups() - } + // if (isAdmin) { + this.fetchCourseGroups(); + // } isAdmin && on('addStudentSuccess', this.addStudentSuccessListener) isAdmin && on('updateNavSuccess', this.updateNavSuccess) From 744b391650514da19572567ed7f17d0d429bcd40 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 14 Aug 2019 18:39:22 +0800 Subject: [PATCH 26/66] =?UTF-8?q?=E5=88=86=E7=BB=84=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=BB=84=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_works_controller.rb | 20 +++++++++++++++++--- config/routes.rb | 1 + 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/controllers/student_works_controller.rb b/app/controllers/student_works_controller.rb index 68d52bd74..93f0fc586 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,20 @@ class StudentWorksController < ApplicationController @members = @members.page(page).per(limit).includes(:course_group, user: :user_extension) end + def delete_work + begin + work = @homework.student_works.find_by!(user_id: params[: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) + normal_status("删除成功") + rescue Exception => e + uid_logger(e.message) + tip_exception(e.message) + end + end + def create student_work = @homework.student_works.find_or_create_by(user_id: current_user.id) 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 From aa136f38652d15fe2cc210a6b3f3c1888959b6e0 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 14 Aug 2019 19:10:55 +0800 Subject: [PATCH 27/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/export_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/export_helper.rb b/app/helpers/export_helper.rb index 5d36c465f..d38255c44 100644 --- a/app/helpers/export_helper.rb +++ b/app/helpers/export_helper.rb @@ -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) From 3863c85ec48aaf63e9ddaa7ec269c6e8650a87cf Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 14 Aug 2019 19:57:23 +0800 Subject: [PATCH 28/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/export_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helpers/export_helper.rb b/app/helpers/export_helper.rb index d38255c44..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 From 0eb221d22ec39966b58829a639531ec21d891e4f Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 14 Aug 2019 20:03:39 +0800 Subject: [PATCH 29/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/myshixun.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 # 耗时 From 772a6d06cbbcbec6e4a66f19990355a2f38b9344 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Wed, 14 Aug 2019 20:05:00 +0800 Subject: [PATCH 30/66] member --- .../courses/busyWork/CommonWorkPost.js | 104 ++++++++++++++---- 1 file changed, 83 insertions(+), 21 deletions(-) diff --git a/public/react/src/modules/courses/busyWork/CommonWorkPost.js b/public/react/src/modules/courses/busyWork/CommonWorkPost.js index 7f4020590..a4da49d4b 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 + 1 memberNumMax){ + }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,34 @@ class CommonWorkPost extends Component{ selectmemberslist:selects }) } + delecttask_status=(id)=>{ + if (this.isEdit) { + this.props.confirm({ + content: +, + 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) + } + }) + .catch(function (error) { + console.log(error); + }); + } + }) + } else { + this.doDelete(id) + } + } gocannel=()=>{ this.props.history.goBack() From 8c6d0e3318c8cab20b1d63aab6942b98b62f4a2b Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 15 Aug 2019 09:02:00 +0800 Subject: [PATCH 31/66] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AE=A1=E7=90=86url?= =?UTF-8?q?=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/partner.rb | 3 +++ app/models/user.rb | 3 +++ app/views/users/get_navigation_info.json.jbuilder | 3 +++ spec/models/partner_spec.rb | 5 +++++ 4 files changed, 14 insertions(+) create mode 100644 app/models/partner.rb create mode 100644 spec/models/partner_spec.rb 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/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/users/get_navigation_info.json.jbuilder b/app/views/users/get_navigation_info.json.jbuilder index 377913ccc..c7ff37e21 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 "#{@old_domain}/cooperates/#{current_user.partner.try(:id)}/partner_list" if current_user.partner + json.career_url do json.array! @career.to_a do |c| if c[1].present? 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 From 871d7a57ac27c2833a720a008cf52106ed2b38e0 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Thu, 15 Aug 2019 09:25:16 +0800 Subject: [PATCH 32/66] =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E6=9C=89=E4=BD=9C=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/busyWork/CommonWorkPost.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/public/react/src/modules/courses/busyWork/CommonWorkPost.js b/public/react/src/modules/courses/busyWork/CommonWorkPost.js index a4da49d4b..c248c554c 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkPost.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkPost.js @@ -504,6 +504,23 @@ class CommonWorkPost extends Component{ } 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的作品将被删除+是否确认删除?+TA的作品将被删除@@ -519,6 +536,7 @@ class CommonWorkPost extends Component{ if (response.data.status == 0) { this.searchValue() this.doDelete(id) + deleteOldMemberIndex != -1 && this._edit_init_memebers.splice(deleteOldMemberIndex, 1) } }) .catch(function (error) { From 9922b5342588202788d788cba33db61569d6960f Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 15 Aug 2019 09:42:57 +0800 Subject: [PATCH 33/66] =?UTF-8?q?=E5=88=86=E7=BB=84=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E7=9A=84=E4=BD=9C=E5=93=81=E5=A2=9E=E5=8A=A0=E7=BB=84=E9=95=BF?= =?UTF-8?q?=E7=9A=84=E7=9B=B8=E5=85=B3=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 2 +- .../homework_commons_controller.rb | 8 +++++ app/controllers/student_works_controller.rb | 35 +++++++++++-------- .../homework_commons/works_list.json.jbuilder | 2 ++ app/views/student_works/edit.json.jbuilder | 3 ++ app/views/student_works/show.json.jbuilder | 9 +++-- 6 files changed, 41 insertions(+), 18 deletions(-) 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/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 93f0fc586..92e60a71c 100644 --- a/app/controllers/student_works_controller.rb +++ b/app/controllers/student_works_controller.rb @@ -61,16 +61,21 @@ class StudentWorksController < ApplicationController end def delete_work - begin - work = @homework.student_works.find_by!(user_id: params[: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) - normal_status("删除成功") - rescue Exception => e - uid_logger(e.message) - tip_exception(e.message) + 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 @@ -137,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 @@ -150,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) @@ -165,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 @@ -193,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 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 From cbc100f8e1112b2a3917d35265d1a9de48816ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 15 Aug 2019 10:05:29 +0800 Subject: [PATCH 34/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/Resource/Fileslistitem.js | 2 +- .../tasks/GraduationTasksSubmitnew.js | 20 ++++++++++++++++--- .../shixunHomework/Listofworksstudentone.js | 12 +++++------ .../courses/shixunHomework/shixunHomework.js | 5 +++-- 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/public/react/src/modules/courses/Resource/Fileslistitem.js b/public/react/src/modules/courses/Resource/Fileslistitem.js index c3998700f..c6c398ca3 100644 --- a/public/react/src/modules/courses/Resource/Fileslistitem.js +++ b/public/react/src/modules/courses/Resource/Fileslistitem.js @@ -263,7 +263,7 @@ class Fileslistitem extends Component{- {discussMessage.author.login} + {discussMessage.author.name} 大小 {discussMessage.filesize} 下载 {discussMessage.downloads_count} 引用 {discussMessage.quotes} diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js index f5060ad4c..a9dd5bc13 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){ diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 7f821bde4..6b756ad8f 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -367,9 +367,9 @@ class Listofworksstudentone extends Component { render: (text, record) => ( { - record.submitstate === "未提交" ?-- + record.submitstate === "未提交" ?-- : - this.Viewstudenttraininginformation(record)}>{record.operating} } @@ -691,9 +691,9 @@ class Listofworksstudentone extends Component { align: 'center', className:'font-14', render: (text, record) => ( - record.submitstate === "未提交" ? -- : + record.submitstate === "未提交" ? -- : - this.Viewstudenttraininginformationt(record)}>{record.operating} ) @@ -985,9 +985,9 @@ class Listofworksstudentone extends Component { align: 'center', className:'font-14', render: (text, record) => ( - record.submitstate === "未提交" ? -- : + 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..f07380d77 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunHomework.js +++ b/public/react/src/modules/courses/shixunHomework/shixunHomework.js @@ -1018,8 +1018,9 @@ class ShixunHomework extends Component{
} -{ detailInfoList===undefined?"":detailInfoList.allow_add_member===true?
- {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"}>添加目录 From f7a3ceb966da04d0f3c1e0542df8007bd31fc7d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 15 Aug 2019 10:09:56 +0800 Subject: [PATCH 35/66] b --- public/react/src/modules/paths/PathDetail/PathDetailIndex.js | 4 ++-- public/react/src/modules/tpm/NewHeader.js | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) 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{- - + {key!=0?:""} + {key+1!=detailInfoList.members.length?:""}:"" } diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index b816448e0..3e0468a71 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 学生 */}我的实训 我的实践课程 ++ 客户管理 + 我的项目 我的众包 账号管理 From f59b93d78fb4abe9bfd19f9831f857088c3ae347 Mon Sep 17 00:00:00 2001 From: SylorHuangDate: Thu, 15 Aug 2019 10:12:52 +0800 Subject: [PATCH 36/66] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E9=A2=84=E8=A7=88pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 6f121db5f..8b93c57d1 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1288,7 +1288,8 @@ class ExercisesController < ApplicationController normal_status(0,"正在下载中") else set_export_cookies - render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets + content[:disposition] = "inline" + render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline' end end From 47851a87acedae395f1890fcb9ce35d1ab55dfe3 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 15 Aug 2019 10:14:57 +0800 Subject: [PATCH 37/66] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/get_navigation_info.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/users/get_navigation_info.json.jbuilder b/app/views/users/get_navigation_info.json.jbuilder index c7ff37e21..ca7f45b45 100644 --- a/app/views/users/get_navigation_info.json.jbuilder +++ b/app/views/users/get_navigation_info.json.jbuilder @@ -17,7 +17,7 @@ json.top do json.crowdsourcing_url "/crowdsourcing" # 客户管理 - json.customer_management_url "#{@old_domain}/cooperates/#{current_user.partner.try(:id)}/partner_list" if current_user.partner + 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| From 9d8ed2f292b188a31c6cd12704759b45c1f0c440 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Thu, 15 Aug 2019 10:15:03 +0800 Subject: [PATCH 38/66] fix es search course teacher not exist --- app/models/searchable/course.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/searchable/course.rb b/app/models/searchable/course.rb index 93c69c9e8..0b2b78436 100644 --- a/app/models/searchable/course.rb +++ b/app/models/searchable/course.rb @@ -21,8 +21,8 @@ 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 From 35f53bc9d0298003eb2dd830358bb87e23b82d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 15 Aug 2019 10:21:55 +0800 Subject: [PATCH 39/66] b --- public/react/src/modules/tpm/NewHeader.js | 2 +- public/react/src/modules/tpm/TPMIndexHOC.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 3e0468a71..a6a849183 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -826,7 +826,7 @@ submittojoinclass=(value)=>{ {/* p 老师 l 学生 */} 我的实训 我的实践课程 -+ 客户管理 我的项目 diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js index b18b2b1c7..ac4ba458a 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%; From 75383afcc5da63be36c720d91cdf6b80520c31b1 Mon Sep 17 00:00:00 2001 From: SylorHuangDate: Thu, 15 Aug 2019 10:23:51 +0800 Subject: [PATCH 40/66] =?UTF-8?q?pdf=E5=9C=A8=E7=BA=BF=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E6=B5=8B=E8=AF=951?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 0543aff9d..dc73b0711 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1291,8 +1291,7 @@ class ExercisesController < ApplicationController normal_status(0,"正在下载中") else set_export_cookies - content[:disposition] = "inline" - render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline' + render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type" end end From cfa22663fab32523fbce006e87a27807dcbf675a Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Thu, 15 Aug 2019 10:38:23 +0800 Subject: [PATCH 41/66] =?UTF-8?q?pdf=E5=9C=A8=E7=BA=BF=E6=B5=8B=E8=AF=952?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index dc73b0711..9dc85b580 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1290,8 +1290,14 @@ class ExercisesController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - set_export_cookies - render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type" + respond_to do |format| + set_export_cookies + format.pdf do + render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false + end + end + # set_export_cookies + # render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false end end From 6c0a0709817b6079e44b54929bcd05718acf4cf8 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Thu, 15 Aug 2019 10:46:14 +0800 Subject: [PATCH 42/66] =?UTF-8?q?pdf=E5=9C=A8=E7=BA=BF=E6=B5=8B=E8=AF=953?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 9dc85b580..811ec6e99 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1290,12 +1290,18 @@ class ExercisesController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - respond_to do |format| - set_export_cookies - format.pdf do - render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false - end - end + file = File.open(Rails.root.join('exercise_export/blank_exercise')) + html = ERB.new(file.read).result(prepare_binding) + + kit = PDFKit.new(html) + base_css = %w(app/templates/exercise_export/exercise_export.css) + base_css.each { |css| kit.stylesheets << Rails.root.join(css) } + file = Tempfile.new(filename_) + kit.to_pdf(file.path) + file + + send_file file,disposition: 'inline', type:"pdf_attachment.content_type",stream:false + # set_export_cookies # render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false end From e607174449f0f9e412bd2a18a78ded8db33d0003 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Thu, 15 Aug 2019 10:48:20 +0800 Subject: [PATCH 43/66] =?UTF-8?q?pdf=E5=9C=A8=E7=BA=BF=E9=A2=84=E8=A7=884?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 811ec6e99..ea202516b 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1290,7 +1290,7 @@ class ExercisesController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - file = File.open(Rails.root.join('exercise_export/blank_exercise')) + file = File.open(Rails.root.join('exercise_export/blank_exercise.html.erb')) html = ERB.new(file.read).result(prepare_binding) kit = PDFKit.new(html) From d0fcf652954a3e3382c60cb67b373995ce4bf53c Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Thu, 15 Aug 2019 10:49:35 +0800 Subject: [PATCH 44/66] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E9=A2=84=E8=A7=88pdf5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index ea202516b..5a31d8e9a 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1290,17 +1290,18 @@ class ExercisesController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - file = File.open(Rails.root.join('exercise_export/blank_exercise.html.erb')) - html = ERB.new(file.read).result(prepare_binding) - - kit = PDFKit.new(html) - base_css = %w(app/templates/exercise_export/exercise_export.css) - base_css.each { |css| kit.stylesheets << Rails.root.join(css) } - file = Tempfile.new(filename_) - kit.to_pdf(file.path) - file - - send_file file,disposition: 'inline', type:"pdf_attachment.content_type",stream:false + # file = File.open(Rails.root.join('exercise_export/blank_exercise.html.erb')) + # html = ERB.new(file.read).result(prepare_binding) + # + # kit = PDFKit.new(html) + # base_css = %w(app/templates/exercise_export/exercise_export.css) + # base_css.each { |css| kit.stylesheets << Rails.root.join(css) } + # file = Tempfile.new(filename_) + # kit.to_pdf(file.path) + # file + # + # send_file file,disposition: 'inline', type:"pdf_attachment.content_type",stream:false + render pdf: 'exercise_export/blank_exercise',filename: filename_, stylesheets: stylesheets # set_export_cookies # render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false From 60baa2ddb8205bd6313a8d9d905a9d8dceae9094 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Thu, 15 Aug 2019 10:58:33 +0800 Subject: [PATCH 45/66] =?UTF-8?q?pdf=E5=9C=A8=E7=BA=BF=E6=B5=8B=E8=AF=956?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 5a31d8e9a..44a2faa92 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1290,18 +1290,17 @@ class ExercisesController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - # file = File.open(Rails.root.join('exercise_export/blank_exercise.html.erb')) - # html = ERB.new(file.read).result(prepare_binding) - # - # kit = PDFKit.new(html) - # base_css = %w(app/templates/exercise_export/exercise_export.css) - # base_css.each { |css| kit.stylesheets << Rails.root.join(css) } + file = File.open(Rails.root.join('exercise_export/blank_exercise.html.erb')) + html = ERB.new(file.read) + + kit = PDFKit.new(html) + base_css = %w(app/templates/exercise_export/exercise_export.css) + base_css.each { |css| kit.stylesheets << Rails.root.join(css) } # file = Tempfile.new(filename_) # kit.to_pdf(file.path) # file - # - # send_file file,disposition: 'inline', type:"pdf_attachment.content_type",stream:false - render pdf: 'exercise_export/blank_exercise',filename: filename_, stylesheets: stylesheets + + send_file kit.to_pdf, filename: filename_ ,disposition: 'inline', type:"application/pdf" # set_export_cookies # render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false From ea4a2ea0b8eeaf44620885d436bac8272e6af1ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 15 Aug 2019 11:02:12 +0800 Subject: [PATCH 46/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/courses/shixunHomework/shixunHomework.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/react/src/modules/courses/shixunHomework/shixunHomework.js b/public/react/src/modules/courses/shixunHomework/shixunHomework.js index f07380d77..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); From 8a81871b6967c7603f0c2b2b7e1e4becb2a9d46b Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Thu, 15 Aug 2019 11:28:35 +0800 Subject: [PATCH 47/66] =?UTF-8?q?=E7=A9=BA=E7=99=BD=E8=AF=95=E5=8D=B7?= =?UTF-8?q?=E5=8F=8A=E5=AE=9E=E8=AE=AD=E6=8A=A5=E5=91=8A=E7=9A=84pdf?= =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 2 +- app/controllers/concerns/render_expand.rb | 2 +- app/controllers/exercises_controller.rb | 16 ++-------------- app/controllers/student_works_controller.rb | 2 +- 4 files changed, 5 insertions(+), 17 deletions(-) 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 44a2faa92..781ede214 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1290,20 +1290,8 @@ class ExercisesController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - file = File.open(Rails.root.join('exercise_export/blank_exercise.html.erb')) - html = ERB.new(file.read) - - kit = PDFKit.new(html) - base_css = %w(app/templates/exercise_export/exercise_export.css) - base_css.each { |css| kit.stylesheets << Rails.root.join(css) } - # file = Tempfile.new(filename_) - # kit.to_pdf(file.path) - # file - - send_file kit.to_pdf, filename: filename_ ,disposition: 'inline', type:"application/pdf" - - # set_export_cookies - # render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets, disposition: 'inline', type:"pdf_attachment.content_type",stream:false + set_export_cookies + 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/student_works_controller.rb b/app/controllers/student_works_controller.rb index 93f0fc586..670e4fb79 100644 --- a/app/controllers/student_works_controller.rb +++ b/app/controllers/student_works_controller.rb @@ -474,7 +474,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 # 作品调分 From f1cf12a5f59f1af21f32889efed349bac645116b Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Thu, 15 Aug 2019 11:29:31 +0800 Subject: [PATCH 48/66] =?UTF-8?q?=E7=A9=BA=E7=99=BD=E8=AF=95=E5=8D=B7?= =?UTF-8?q?=E5=8F=8A=E5=AE=9E=E8=AE=AD=E6=8A=A5=E5=91=8Apdf=E7=9A=84?= =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/aliyun_vod.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 config/aliyun_vod.yml 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 From 2de30bc91f8f72e273a1fef3cc6f4e178cc75444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 15 Aug 2019 11:38:03 +0800 Subject: [PATCH 49/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/tpm/TPMIndexHOC.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js index ac4ba458a..f87f128a1 100644 --- a/public/react/src/modules/tpm/TPMIndexHOC.js +++ b/public/react/src/modules/tpm/TPMIndexHOC.js @@ -362,7 +362,7 @@ export function TPMIndexHOC(WrappedComponent) { overflow: hidden; } .newHeaders{ - position: fixed; + // position: fixed; max-width: unset; background: #24292D !important; width: 100%; From c45a642be2055b688aab3ac077112d155ed049a9 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 15 Aug 2019 14:16:18 +0800 Subject: [PATCH 50/66] =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=9C=9F=E5=AE=9E=E5=A7=93=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_user_simple.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 027d99163cb9cdf4c30fc922387c826e7321cbc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 15 Aug 2019 14:19:16 +0800 Subject: [PATCH 51/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/Resource/Fileslistitem.js | 4 +- public/stylesheets/css/edu-common.css | 1226 ++++++++--------- 2 files changed, 615 insertions(+), 615 deletions(-) diff --git a/public/react/src/modules/courses/Resource/Fileslistitem.js b/public/react/src/modules/courses/Resource/Fileslistitem.js index c6c398ca3..f0aec7f64 100644 --- a/public/react/src/modules/courses/Resource/Fileslistitem.js +++ b/public/react/src/modules/courses/Resource/Fileslistitem.js @@ -261,7 +261,7 @@ class Fileslistitem extends Component{ +
{discussMessage.author.name} 大小 {discussMessage.filesize} @@ -302,7 +302,7 @@ class Fileslistitem extends Component{ -
+
资源描述 :{discussMessage.description===null?"暂无描述":discussMessage.description}{/**/} {/*/!**!/*/} 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; +} From 0c5c89324d42b7b9e062bf9eafca78ac05ad3737 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 15 Aug 2019 14:48:54 +0800 Subject: [PATCH 52/66] =?UTF-8?q?=E5=AD=A6=E6=97=B6=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E6=88=90=E6=95=B4=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/migrate/20190815064541_modify_class_period_for_courses.rb | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 db/migrate/20190815064541_modify_class_period_for_courses.rb diff --git a/db/migrate/20190815064541_modify_class_period_for_courses.rb b/db/migrate/20190815064541_modify_class_period_for_courses.rb new file mode 100644 index 000000000..00f030ce4 --- /dev/null +++ b/db/migrate/20190815064541_modify_class_period_for_courses.rb @@ -0,0 +1,5 @@ +class ModifyClassPeriodForCourses < ActiveRecord::Migration[5.2] + def change + change_column :courses, :class_period, :integer, :default => 0 + end +end From 14acd39a07d10c70d601c59b610286d6ee5f445c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 15 Aug 2019 14:51:22 +0800 Subject: [PATCH 53/66] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/coursesDetail/CoursesLeftNav.js | 5 +++-- .../graduation/tasks/GraduationTasksSubmitnew.js | 3 +++ .../src/modules/courses/graduation/tasks/index.js | 12 +++++++++--- .../src/modules/courses/graduation/topics/index.js | 8 ++++++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js b/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js index 849621259..cb33256fb 100644 --- a/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js +++ b/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js @@ -837,7 +837,7 @@ class Coursesleftnav extends Component{ .droppableul{ max-height: 500px; overflow-y:auto; - overflow:hidden auto; + overflow-x:hidden; } .mr13{ @@ -928,8 +928,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_name==="未分班"?"": 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/graduation/tasks/GraduationTasksSubmitnew.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js index a9dd5bc13..dadc621b2 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksSubmitnew.js @@ -472,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..2d47cabf0 100644 --- a/public/react/src/modules/courses/graduation/topics/index.js +++ b/public/react/src/modules/courses/graduation/topics/index.js @@ -355,6 +355,14 @@ onBoardsNew=()=>{ DownloadMessageval:undefined }) } + + // 题库选用成功后刷新页面 + useBankSuccess=(checkBoxValues,object_ids)=>{ + //debugger + let {search,page,order,all_count} = this.state; + this.fetchAll(search,page,order,all_count) + + } render(){ let { searchValue, From 7d1a7b77b9f856d97c7c3b2ec8c3063db1bd31df Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 15 Aug 2019 14:55:16 +0800 Subject: [PATCH 54/66] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=80=BB=E6=97=B6=E9=97=B4=E9=95=BF=E7=9A=84=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/migrate/20190815064541_modify_class_period_for_courses.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/db/migrate/20190815064541_modify_class_period_for_courses.rb b/db/migrate/20190815064541_modify_class_period_for_courses.rb index 00f030ce4..855dc0db2 100644 --- a/db/migrate/20190815064541_modify_class_period_for_courses.rb +++ b/db/migrate/20190815064541_modify_class_period_for_courses.rb @@ -1,5 +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, :default => 0 end end From 5de49f0eb722ce03913cd3553b4186718f5bf763 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 15 Aug 2019 14:57:03 +0800 Subject: [PATCH 55/66] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/migrate/20190815064541_modify_class_period_for_courses.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/migrate/20190815064541_modify_class_period_for_courses.rb b/db/migrate/20190815064541_modify_class_period_for_courses.rb index 855dc0db2..c0f8600b4 100644 --- a/db/migrate/20190815064541_modify_class_period_for_courses.rb +++ b/db/migrate/20190815064541_modify_class_period_for_courses.rb @@ -3,6 +3,6 @@ class ModifyClassPeriodForCourses < ActiveRecord::Migration[5.2] Course.find_each do |c| c.update_column(:class_period, c.class_period.to_i) end - change_column :courses, :class_period, :integer, :default => 0 + change_column :courses, :class_period, :integer end end From 8f8cf1fdf3d0c3eb07b983dccad2c13a0ed65fd7 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 15 Aug 2019 14:57:24 +0800 Subject: [PATCH 56/66] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...urses.rb => 20190815064542_modify_class_period_for_courses.rb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename db/migrate/{20190815064541_modify_class_period_for_courses.rb => 20190815064542_modify_class_period_for_courses.rb} (100%) diff --git a/db/migrate/20190815064541_modify_class_period_for_courses.rb b/db/migrate/20190815064542_modify_class_period_for_courses.rb similarity index 100% rename from db/migrate/20190815064541_modify_class_period_for_courses.rb rename to db/migrate/20190815064542_modify_class_period_for_courses.rb From 58c56d632429a7ab70c0cdb7166b7c226be88e37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 15 Aug 2019 15:16:23 +0800 Subject: [PATCH 57/66] b --- public/react/src/modules/courses/graduation/topics/index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/courses/graduation/topics/index.js b/public/react/src/modules/courses/graduation/topics/index.js index 2d47cabf0..61a9bea67 100644 --- a/public/react/src/modules/courses/graduation/topics/index.js +++ b/public/react/src/modules/courses/graduation/topics/index.js @@ -359,9 +359,8 @@ onBoardsNew=()=>{ // 题库选用成功后刷新页面 useBankSuccess=(checkBoxValues,object_ids)=>{ //debugger - let {search,page,order,all_count} = this.state; - this.fetchAll(search,page,order,all_count) - + let {searchValue,page,status} =this.state + this.fetchAll(searchValue,page,status); } render(){ let { From 46580fd139a906c323456bac5360005d326de512 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 15 Aug 2019 15:22:47 +0800 Subject: [PATCH 58/66] =?UTF-8?q?=E8=AF=95=E5=8D=B7=E4=BA=A4=E5=8D=B7?= =?UTF-8?q?=E5=90=8E=E9=A1=B5=E9=9D=A2=E6=B2=A1=E6=9C=89=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=80=89=E4=B8=AD=E7=9A=84=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/exercise/ExerciseReviewAndAnswer.js | 12 ++++++++++++ .../modules/courses/exercise/question/multiple.js | 6 ++++-- .../src/modules/courses/exercise/question/single.js | 6 ++++-- 3 files changed, 20 insertions(+), 4 deletions(-) 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/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} {/* */} {/* */} From de85220fd87bf56b3d0811cfa39a94972782ca04 Mon Sep 17 00:00:00 2001 From: SylorHuangDate: Thu, 15 Aug 2019 15:28:08 +0800 Subject: [PATCH 59/66] =?UTF-8?q?=E8=B5=84=E6=BA=90=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0is=5Fpdf=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/files_controller.rb | 7 ++++++- app/views/files/histories.json.jbuilder | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) 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/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 From 23dd392c1dc1782feec77963e7135db4bbb2b9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 15 Aug 2019 15:55:07 +0800 Subject: [PATCH 60/66] =?UTF-8?q?=E7=A9=BA=E7=99=BD=E8=AF=95=E5=8D=B7?= =?UTF-8?q?=E6=89=93=E5=BC=80pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/exercise/Testpapersettinghomepage.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js index bcc0d85a3..bab0b70d0 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{ 导出 :""} From 47c73b8a048a3297db9e62d2201af39afdc7395a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 15 Aug 2019 15:57:22 +0800 Subject: [PATCH 61/66] =?UTF-8?q?=E7=A9=BA=E7=99=BD=E8=AF=95=E5=8D=B7?= =?UTF-8?q?=E6=89=93=E5=BC=80pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/exercise/Testpapersettinghomepage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js index bab0b70d0..65e48962a 100644 --- a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js +++ b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js @@ -163,7 +163,7 @@ class Testpapersettinghomepage extends Component{ } } - //打开pdf + //打开pdf confpdf = (url) =>{ window.open(url); } From 303b0b8f72a02ca3ed4bdccce9729201d45453c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 15 Aug 2019 16:03:31 +0800 Subject: [PATCH 62/66] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=B0=8F=E6=89=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/shixunHomework/Listofworksstudentone.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 6b756ad8f..8ba9b8ac2 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -367,9 +367,9 @@ class Listofworksstudentone extends Component { render: (text, record) => ( { - record.submitstate === "未提交" ?-- + record.submitstate === "未提交" ?-- : - this.Viewstudenttraininginformation(record)}>{record.operating} } @@ -691,9 +691,9 @@ class Listofworksstudentone extends Component { align: 'center', className:'font-14', render: (text, record) => ( - record.submitstate === "未提交" ? -- : + record.submitstate === "未提交" ? -- : - this.Viewstudenttraininginformationt(record)}>{record.operating} ) @@ -985,9 +985,9 @@ class Listofworksstudentone extends Component { align: 'center', className:'font-14', render: (text, record) => ( - record.submitstate === "未提交" ? -- : + record.submitstate === "未提交" ? -- : - this.Viewstudenttraininginformationt(record)}>{record.operating} ) From 81ff73e5e44d75adfd63a1eb580c05dc53f52221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 15 Aug 2019 16:14:07 +0800 Subject: [PATCH 63/66] b --- public/react/src/AppConfig.js | 4 +++- .../react/src/modules/courses/coursesDetail/CoursesLeftNav.js | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) 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/coursesDetail/CoursesLeftNav.js b/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js index cb33256fb..cb911c4dc 100644 --- a/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js +++ b/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js @@ -683,7 +683,7 @@ class Coursesleftnav extends Component{ }else if(result.source.droppableId==="course_group"){ let url ="/course_groups/"+result.draggableId+"/move_category.json" - this.droppablepost(url,result.destination.index) + this.droppablepost(url,result.destination.index+1) } From 83579170523762f0f8536c59d48447ecef62ff05 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 15 Aug 2019 16:54:28 +0800 Subject: [PATCH 64/66] =?UTF-8?q?=E5=85=B3=E5=8D=A1=E8=AF=84=E6=B5=8B?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=9A=84=E5=AD=A6=E9=99=A2=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E5=A4=AA=E9=95=BF=E5=90=8E=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/migrate/20190815085136_modify_path_for_challenges.rb | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 db/migrate/20190815085136_modify_path_for_challenges.rb 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 From 2463d3343a54c644d09d9f0a41632cb87fdd5176 Mon Sep 17 00:00:00 2001 From: p31729568
- this.confirmysl(`/exercises/${this.props.match.params.Id}/exercise_lists.xlsx`,this.child)}>学生成绩
-- this.confirmysl(`/exercises/${this.props.match.params.Id}/export_exercise`,this.child)} >空白试卷
+- this.confpdf(`/api/exercises/${this.props.match.params.Id}/export_exercise`)} >空白试卷
{/*- this.confirmysl(`/zip/export_exercises?exercise_id=${this.props.match.params.Id}${this.state.groupyslsval===null||this.state.groupyslsval===undefined?null:this.state.groupyslsval}`)}>学生答题试卷
*/}Date: Thu, 15 Aug 2019 17:29:12 +0800 Subject: [PATCH 65/66] add first_category_url to es search api --- app/models/searchable/course.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/searchable/course.rb b/app/models/searchable/course.rb index 0b2b78436..5060d9ddd 100644 --- a/app/models/searchable/course.rb +++ b/app/models/searchable/course.rb @@ -25,7 +25,8 @@ module Searchable::Course 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 From 5a3dc6eae56c6563a60a7a523616c9f5796f4fab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 15 Aug 2019 17:43:36 +0800 Subject: [PATCH 66/66] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=90=9C=E7=B4=A2=20?= =?UTF-8?q?=E8=AF=BE=E5=A0=82=E6=A0=B9=E6=8D=AE=E5=AD=97=E6=AE=B5=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/search/SearchPage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/search/SearchPage.js b/public/react/src/search/SearchPage.js index 33a1a7852..e5cc07b2b 100644 --- a/public/react/src/search/SearchPage.js +++ b/public/react/src/search/SearchPage.js @@ -183,7 +183,7 @@ class SearchPage extends Component{ return (