From 814aa13c21518c8c463761e09e8c993364ed1c98 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 30 Jul 2019 14:05:26 +0800 Subject: [PATCH 1/7] =?UTF-8?q?Mp3=E3=80=81mp4=E7=B1=BB=E5=AE=9E=E8=AE=AD?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/games_controller.rb | 2 +- app/controllers/myshixuns_controller.rb | 2 +- app/helpers/games_helper.rb | 8 +++++++- app/models/challenge.rb | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb index b2de6dcad..667d45f2b 100644 --- a/app/controllers/games_controller.rb +++ b/app/controllers/games_controller.rb @@ -116,7 +116,7 @@ class GamesController < ApplicationController @qrcode_str = Base64.encode64( qr.to_img.resize(400,400).to_s ) else - @type = "image" + @type = "" #conv = Iconv.new("GBK", "utf-8") @game_challenge = @game.challenge type = @game_challenge.show_type diff --git a/app/controllers/myshixuns_controller.rb b/app/controllers/myshixuns_controller.rb index fa47fd7f6..1d6b15969 100644 --- a/app/controllers/myshixuns_controller.rb +++ b/app/controllers/myshixuns_controller.rb @@ -24,7 +24,7 @@ class MyshixunsController < ApplicationController ActiveRecord::Base.transaction do begin @shixun = Shixun.select(:id, :identifier).find(@myshixun.shixun_id) - @myshixun.destroy + @myshixun.destroy! StudentWork.where(:myshixun_id => @myshixun.id).update_all(:myshixun_id => 0, :work_status => 0) diff --git a/app/helpers/games_helper.rb b/app/helpers/games_helper.rb index aff05904f..dfc3fb321 100644 --- a/app/helpers/games_helper.rb +++ b/app/helpers/games_helper.rb @@ -6,7 +6,7 @@ module GamesHelper end # 获取目录下所有文件,返回一个文件名的数组 type是查看文件的类型image表示图片 - # type [[1, "图片"], [2, "apk/exe"], [3, "txt"], [4, "html"]] + # type [[1, "图片"], [2, "apk/exe"], [3, "txt"], [4, "html"], [5, "mp3"], [6, "mp4"]] def get_dir_filename(path, type, game_id) answer_picture = [] return answer_picture unless File.directory?(path) @@ -39,6 +39,12 @@ module GamesHelper end f.close @type = 'txt' + elsif extension == 'mp3' && type == 5 + answer_picture << file + @type = 'mp3' + elsif extension == 'mp4' && type == 6 + answer_picture << file + @type = 'mp4' end end diff --git a/app/models/challenge.rb b/app/models/challenge.rb index 0bea54eb4..8e4d2ae42 100644 --- a/app/models/challenge.rb +++ b/app/models/challenge.rb @@ -1,5 +1,6 @@ class Challenge < ApplicationRecord # difficulty: 关卡难度: 1.简单 2.中等 3.困难 + # show_type: 效果展示:-1.无效果 1.图片 2.apk/exe 3.txt 4.html 5.mp3 6.mp4 default_scope { order("challenges.position asc") } belongs_to :shixun, :touch => true, counter_cache: true From 3029588c84d06fb260f587f09827b0426ec31d3a Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Wed, 31 Jul 2019 09:53:38 +0800 Subject: [PATCH 2/7] + '?export=true' --- .../src/modules/courses/busyWork/common/TabRightComponents.js | 2 +- .../src/modules/courses/exercise/Testpapersettinghomepage.js | 2 +- .../courses/graduation/tasks/GraduationTaskssetting.js | 2 +- .../courses/graduation/tasks/GraduationTaskssettinglist.js | 2 +- .../graduation/tasks/GraduationTaskssettingquestions.js | 2 +- public/react/src/modules/courses/graduation/topics/index.js | 2 +- public/react/src/modules/courses/members/studentsList.js | 2 +- public/react/src/modules/courses/poll/PollDetailIndex.js | 2 +- .../modules/courses/shixunHomework/Listofworksstudentone.js | 2 +- .../src/modules/courses/shixunHomework/ShixunStudentWork.js | 2 +- .../src/modules/courses/shixunHomework/Trainingjobsetting.js | 4 ++-- .../modules/courses/shixunHomework/Workquestionandanswer.js | 4 ++-- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/public/react/src/modules/courses/busyWork/common/TabRightComponents.js b/public/react/src/modules/courses/busyWork/common/TabRightComponents.js index a070ba69a..5320dd0ca 100644 --- a/public/react/src/modules/courses/busyWork/common/TabRightComponents.js +++ b/public/react/src/modules/courses/busyWork/common/TabRightComponents.js @@ -44,7 +44,7 @@ class TabRightComponents extends Component{ } /// 确认是否下载 confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '?export=true' ).then((response) => { if(response.data.status&&response.data.status===-1){ }else if(response.data.status&&response.data.status===-2){ diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js index 36b319f5a..5a410ab4a 100644 --- a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js +++ b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js @@ -164,7 +164,7 @@ class Testpapersettinghomepage extends Component{ } /// 确认是否下载 confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '?export=true' ).then((response) => { if(response.data.status&&response.data.status===-1){ }else if(response.data.status&&response.data.status===-2){ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js index 5bbbe1a14..d6382165b 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js @@ -896,7 +896,7 @@ class GraduationTaskssettingapp extends Component{ } /// 确认是否下载 confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '?export=true' ).then((response) => { if(response === undefined){ return } diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js index 7d421da4b..1b98f00f3 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js @@ -645,7 +645,7 @@ class GraduationTaskssettinglist extends Component{ b_order:b_order, search:search, } - axios.get(url,{ + axios.get(url + '?export=true',{ params }).then((response) => { if(response === undefined){ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js index 1bf6eb962..a812bd803 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js @@ -199,7 +199,7 @@ class GraduationTasksquestions extends Component{ /// 确认是否下载 confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '?export=true').then((response) => { if(response === undefined){ return } diff --git a/public/react/src/modules/courses/graduation/topics/index.js b/public/react/src/modules/courses/graduation/topics/index.js index f4303ff87..84b500716 100644 --- a/public/react/src/modules/courses/graduation/topics/index.js +++ b/public/react/src/modules/courses/graduation/topics/index.js @@ -322,7 +322,7 @@ onBoardsNew=()=>{ } /// 确认是否下载 confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '?export=true').then((response) => { if(response.data.status&&response.data.status===-1){ }else if(response.data.status&&response.data.status===-2){ diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js index 6780948ef..d7c4cb85b 100644 --- a/public/react/src/modules/courses/members/studentsList.js +++ b/public/react/src/modules/courses/members/studentsList.js @@ -127,7 +127,7 @@ class studentsList extends Component{ } /// 确认是否下载 confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '&export=true').then((response) => { if(response === undefined){ return } diff --git a/public/react/src/modules/courses/poll/PollDetailIndex.js b/public/react/src/modules/courses/poll/PollDetailIndex.js index b1e8c3443..cdc6a5ae2 100644 --- a/public/react/src/modules/courses/poll/PollDetailIndex.js +++ b/public/react/src/modules/courses/poll/PollDetailIndex.js @@ -75,7 +75,7 @@ class PollDetailIndex extends Component{ /// 确认是否下载 confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '?export=true' ).then((response) => { if(response.data.status&&response.data.status===-1){ }else if(response.data.status&&response.data.status===-2){ diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 4dc41fcf7..17778dea9 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -2214,7 +2214,7 @@ class Listofworksstudentone extends Component { confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '&export=true').then((response) => { if(response === undefined){ return } diff --git a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js index 4bb44b697..97bc651ea 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js @@ -539,7 +539,7 @@ class ShixunStudentWork extends Component { } confirmysl(url){ - axios.get(url).then((response) => { + axios.get(url + '?export=true').then((response) => { if(response === undefined){ return } diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index b07392153..8cbf0402f 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -1766,12 +1766,12 @@ class Trainingjobsetting extends Component { daochushixunbaogao=()=>{ let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}`; - this.confirmysl(url); + this.confirmysl(url + '&export=true'); } daochuzuoye =() =>{ let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx`; - this.confirmysl(url); + this.confirmysl(url + '?export=true'); } confirmysl(url){ diff --git a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js index a46d783ea..2da08e2ad 100644 --- a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js +++ b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js @@ -339,12 +339,12 @@ class Workquestionandanswer extends Component { daochushixunbaogao=()=>{ let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}`; - this.confirmysl(url); + this.confirmysl(url + '&export=true'); } daochuzuoye =() =>{ let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx`; - this.confirmysl(url); + this.confirmysl(url + '?export=true'); } confirmysl(url){ From 72cba9fc2888db71b60e9771cc1020d89e482784 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Wed, 31 Jul 2019 09:57:57 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E8=AF=BE=E5=A0=82=E7=9A=84=E5=85=A8?= =?UTF-8?q?=E9=83=A8excel=E5=AF=BC=E5=87=BA=E5=92=8Cpdf=E5=92=8Czip?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 3 +++ app/controllers/exercises_controller.rb | 2 ++ .../graduation_tasks_controller.rb | 19 +++++++++++++------ .../graduation_topics_controller.rb | 7 ++++++- app/controllers/polls_controller.rb | 3 +++ app/controllers/zips_controller.rb | 1 + 6 files changed, 28 insertions(+), 7 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 9ae909dbc..abc3e4856 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1027,7 +1027,10 @@ class CoursesController < ApplicationController tip_exception(403,"无权限操作") elsif @all_members.size == 0 normal_status(-1,"课堂暂时没有学生") + elsif params[:export].present? && params[:export] + normal_status(0,"正在下载中") else + set_export_cookies member_to_xlsx(@course, @all_members, @c_homeworks, @c_exercises, @c_tasks) filename_ = "#{current_user.real_name}_#{@course.name}_全部成绩_#{Time.now.strftime('%Y%m%d_%H%M%S')}" render xlsx: "#{format_sheet_name filename_.strip}",template: "courses/export_member_scores_excel.xlsx.axlsx", diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 915a4e22c..6f121db5f 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1261,6 +1261,7 @@ class ExercisesController < ApplicationController else respond_to do |format| format.xlsx{ + set_export_cookies get_export_users(@exercise,@course,@export_ex_users) exercise_export_name_ = "#{current_user.real_name}_#{@course.name}_#{@exercise.exercise_name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" @@ -1286,6 +1287,7 @@ 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 end end diff --git a/app/controllers/graduation_tasks_controller.rb b/app/controllers/graduation_tasks_controller.rb index aeb5c409d..0885eeae2 100644 --- a/app/controllers/graduation_tasks_controller.rb +++ b/app/controllers/graduation_tasks_controller.rb @@ -132,6 +132,8 @@ class GraduationTasksController < ApplicationController tip_exception(403, "无权限操作") elsif complete_works == 0 normal_status(-1,"暂无用户提交") + elsif params[:export].present? && params[:export] + normal_status(0,"正在下载中") else respond_to do |format| format.xlsx{ @@ -148,12 +150,17 @@ class GraduationTasksController < ApplicationController zip_works = @work_excel.where("work_status > 0") status = checkfileSize(zip_works) if status == 0 - respond_to do |format| - format.zip{ - zipfile = zip_homework_common @task, zip_works - file = decode64(zipfile[0][:base64file]) - send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' - } + if params[:export].present? && params[:export] + normal_status(0,"正在下载中") + else + respond_to do |format| + format.zip{ + set_export_cookies + zipfile = zip_homework_common @task, zip_works + file = decode64(zipfile[0][:base64file]) + send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' + } + end end else normal_status(status,status == -2 ? "500M" : "无附件可下载") diff --git a/app/controllers/graduation_topics_controller.rb b/app/controllers/graduation_topics_controller.rb index 96816c2a6..bd93401f3 100644 --- a/app/controllers/graduation_topics_controller.rb +++ b/app/controllers/graduation_topics_controller.rb @@ -271,7 +271,12 @@ class GraduationTopicsController < ApplicationController students = course.students.joins(user: :user_extension).order("user_extensions.student_id") graduation_topic_to_xlsx(students,course) topic_export_name_ = "#{current_user.real_name}_#{course.name}_毕设选题_#{Time.now.strftime('%Y%m%d_%H%M%S')}" - render xlsx: "#{topic_export_name_.strip}",template: "graduation_topics/export.xlsx.axlsx",locals: {table_columns:@topic_head_cells,topic_users:@topic_body_cells} + if params[:export].present? && params[:export] + normal_status(0,"正在下载中") + else + set_export_cookies + render xlsx: "#{topic_export_name_.strip}",template: "graduation_topics/export.xlsx.axlsx",locals: {table_columns:@topic_head_cells,topic_users:@topic_body_cells} + end rescue Exception => e uid_logger(e.message) missing_template diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 87435f743..7d978d722 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -945,9 +945,12 @@ class PollsController < ApplicationController tip_exception(403,"无权限操作") elsif (@poll.polls_status == 1) || (@poll_export_questions.size == 0) || (@poll_commit_ids.size == 0) normal_status(-1,"暂无用户提交") + elsif params[:export].present? && params[:export] + normal_status(0,"正在下载中") else respond_to do |format| format.xlsx{ + set_export_cookies polls_export_name_ = "#{current_user.real_name}_#{@course.name}_#{@poll.polls_name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" polls_user_commit = poll_commit_result(@poll,@poll_export_questions,@poll_users,@poll_commit_ids) render xlsx: "#{polls_export_name_.strip}",template: "polls/commit_result.xlsx.axlsx",locals: {polls_user_commit:polls_user_commit} diff --git a/app/controllers/zips_controller.rb b/app/controllers/zips_controller.rb index b1f7804a9..3ed1eb8b3 100644 --- a/app/controllers/zips_controller.rb +++ b/app/controllers/zips_controller.rb @@ -27,6 +27,7 @@ class ZipsController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else + set_export_cookies send_file exercises.ex_zip, filename: file_name_, type: 'application/zip' end rescue Exception => e From 8c584ba15d2080559518b2bdcc151452e1f3c1b5 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Wed, 31 Jul 2019 09:58:08 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=A4=9A=E5=AA=92?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=E7=9A=84=E5=AE=9E=E8=AE=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/games_controller.rb | 2 +- app/views/games/picture_display.json.jbuilder | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb index b2de6dcad..510044aa4 100644 --- a/app/controllers/games_controller.rb +++ b/app/controllers/games_controller.rb @@ -116,7 +116,7 @@ class GamesController < ApplicationController @qrcode_str = Base64.encode64( qr.to_img.resize(400,400).to_s ) else - @type = "image" + @type = shixun_show_type @game_challenge.show_type #conv = Iconv.new("GBK", "utf-8") @game_challenge = @game.challenge type = @game_challenge.show_type diff --git a/app/views/games/picture_display.json.jbuilder b/app/views/games/picture_display.json.jbuilder index 541c478a9..b43efa57e 100644 --- a/app/views/games/picture_display.json.jbuilder +++ b/app/views/games/picture_display.json.jbuilder @@ -24,5 +24,30 @@ elsif @type == "txt" json.contents @contents.html_safe elsif @type =="qrcode" json.qrcode_str @qrcode_str +elsif @type == "mp3" || @type == "mp4" + if @type == "mp4" + json.orignal_file [{"file_url": "http://120.27.231.56:48080/attachments/download/378171/123.mp4"}] + json.user_file [{"file_url": "http://120.27.231.56:48080/attachments/download/378172/456.mp4"}] + json.answer_file [{"file_url": "http://120.27.231.56:48080/attachments/download/378173/789.mp4"}] + else + json.orignal_file [{"file_url": "http://120.27.231.56:48080/attachments/download/378174/58099.mp3"}] + json.user_file [{"file_url": "http://120.27.231.56:48080/attachments/download/378175/654058514.mp3"}] + json.answer_file [{"file_url": "http://120.27.231.56:48080/attachments/download/378175/654058514.mp3"}] + end + # json.orignal_file do + # json.array! @orignal_picture do |file| + # json.file_url attachment_show_users_path(:file_name => file, :path => @original_path) + # end + # end + # json.user_file do + # json.array! @user_picture do |file| + # json.file_url attachment_show_users_path(:file_name => file, :path => @user_path, :time => Time.now.to_i) + # end + # end + # json.answer_file do + # json.array! @answer_picture do |file| + # json.file_url attachment_show_users_path(:file_name => file, :path => @answer_path) + # end + # end end \ No newline at end of file From 400e5c104011c1f593daf97092d230fa4acffc37 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Wed, 31 Jul 2019 10:08:01 +0800 Subject: [PATCH 5/7] export true --- .../modules/courses/shixunHomework/Trainingjobsetting.js | 8 ++++---- .../courses/shixunHomework/Workquestionandanswer.js | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index 8cbf0402f..99c295c40 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -1766,16 +1766,16 @@ class Trainingjobsetting extends Component { daochushixunbaogao=()=>{ let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}`; - this.confirmysl(url + '&export=true'); + this.confirmysl(url, url + '&export=true'); } daochuzuoye =() =>{ let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx`; - this.confirmysl(url + '?export=true'); + this.confirmysl(url, url + '?export=true'); } - confirmysl(url){ - axios.get(url).then((response) => { + confirmysl(url, urlWithExport){ + axios.get(urlWithExport).then((response) => { if(response === undefined){ return } diff --git a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js index 2da08e2ad..4ed45790d 100644 --- a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js +++ b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js @@ -339,16 +339,16 @@ class Workquestionandanswer extends Component { daochushixunbaogao=()=>{ let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}`; - this.confirmysl(url + '&export=true'); + this.confirmysl(url, url + '&export=true'); } daochuzuoye =() =>{ let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx`; - this.confirmysl(url + '?export=true'); + this.confirmysl(url, url + '?export=true'); } - confirmysl(url){ - axios.get(url).then((response) => { + confirmysl(url, urlWithExport){ + axios.get(urlWithExport).then((response) => { if(response === undefined){ return } From 2e889a74e56189c9077fa443a2a267df9cba4a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Wed, 31 Jul 2019 11:20:32 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E4=B8=8D=E8=83=BD=E9=80=89=E4=BB=8A?= =?UTF-8?q?=E5=A4=A9=E4=B9=8B=E5=89=8D=E7=9A=84=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/coursesPublic/HomeworkModal.js | 11 ++++++++++- .../modules/courses/coursesPublic/SelectSetting.js | 8 +++++++- .../src/modules/courses/coursesPublic/sendResource.js | 8 +++++++- .../src/modules/courses/exercise/Exercisesetting.js | 8 ++++++++ .../graduation/tasks/GraduationTaskssetting.js | 9 +++++++++ public/react/src/modules/courses/new/CoursesNew.js | 4 ++++ .../modules/courses/poll/PollDetailTabForthRules.js | 8 ++++++++ .../courses/shixunHomework/Trainingjobsetting.js | 6 ++++++ .../react/src/modules/tpm/TPMsettings/TPMsettings.js | 7 ++++++- public/react/src/modules/tpm/newshixuns/Newshixuns.js | 8 +++++--- 10 files changed, 70 insertions(+), 7 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/HomeworkModal.js b/public/react/src/modules/courses/coursesPublic/HomeworkModal.js index 440d8893c..deb329fb9 100644 --- a/public/react/src/modules/courses/coursesPublic/HomeworkModal.js +++ b/public/react/src/modules/courses/coursesPublic/HomeworkModal.js @@ -20,6 +20,14 @@ function disabledDateTime() { // disabledSeconds: () => [55, 56], }; } + + +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} + + + class HomeworkModal extends Component{ constructor(props){ super(props); @@ -81,7 +89,7 @@ class HomeworkModal extends Component{ // console.log('startValue',dateString); this.setState({ - endtime: handleDateString(dateString), + endtime: date===null?"":handleDateString(dateString), }) } @@ -188,6 +196,7 @@ class HomeworkModal extends Component{ dropdownClassName="hideDisable" showTime={{ format: 'HH:mm' }} disabledTime={disabledDateTime} + disabledDate={disabledDate} showToday={false} locale={locale} format={dateFormat} diff --git a/public/react/src/modules/courses/coursesPublic/SelectSetting.js b/public/react/src/modules/courses/coursesPublic/SelectSetting.js index 08e01e28e..fa2e014f9 100644 --- a/public/react/src/modules/courses/coursesPublic/SelectSetting.js +++ b/public/react/src/modules/courses/coursesPublic/SelectSetting.js @@ -16,12 +16,17 @@ function range(start, end) { } return result; } + function disabledDateTime() { return { disabledMinutes: () => range(1, 30).concat(range(31, 60)), // disabledSeconds: () => range(1,60) } } + +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} class Selectsetting extends Component{ constructor(props){ super(props); @@ -698,6 +703,7 @@ class Selectsetting extends Component{ onChange={(e,index)=>this.onChangeTimepublishs(e,index,key)} // onChange={ this.onChangeTimepublish } disabledTime={disabledDateTime} + disabledDate={disabledDate} /> {key!=0?this.deletegrouppublish(key)}>:""} @@ -730,7 +736,7 @@ class Selectsetting extends Component{ value={datatime===undefined||datatime===""?"":moment(datatime, dateFormat)} onChange={this.onChangeTimepublish} disabledTime={disabledDateTime} - + disabledDate={disabledDate} />

:""} diff --git a/public/react/src/modules/courses/coursesPublic/sendResource.js b/public/react/src/modules/courses/coursesPublic/sendResource.js index 397711ca3..8443061dd 100644 --- a/public/react/src/modules/courses/coursesPublic/sendResource.js +++ b/public/react/src/modules/courses/coursesPublic/sendResource.js @@ -22,6 +22,11 @@ function disabledDateTime() { }; } +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} + + const dateFormat="YYYY-MM-DD HH:mm"; class Sendresource extends Component{ constructor(props){ @@ -525,6 +530,7 @@ class Sendresource extends Component{ onChange={(e,index)=>this.onChangeTimepublish(e,index,key,2)} // onChange={ this.onChangeTimepublish } disabledTime={disabledDateTime} + disabledDate={disabledDate} /> {key!=0?this.deletegrouppublish(key)}>:""} {key===course_group_publish_times.length-1&&key:""} @@ -551,7 +557,7 @@ class Sendresource extends Component{ value={datatime===undefined||datatime===""?undefined:moment(datatime, dateFormat)} onChange={(e,index)=>this.onChangeTimepublish(e,index,undefined,1)} disabledTime={disabledDateTime} - + disabledDate={disabledDate} />

:""} diff --git a/public/react/src/modules/courses/exercise/Exercisesetting.js b/public/react/src/modules/courses/exercise/Exercisesetting.js index 9b6103fdb..a93aa9942 100644 --- a/public/react/src/modules/courses/exercise/Exercisesetting.js +++ b/public/react/src/modules/courses/exercise/Exercisesetting.js @@ -23,6 +23,7 @@ function range(start, end) { } return result; } + function disabledDateTime() { return { // disabledHours: () => range(0, 24).splice(4, 20), @@ -30,6 +31,11 @@ function disabledDateTime() { // disabledSeconds: () => [0, 60], }; } + +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} + const dataformat="YYYY-MM-DD HH:mm"; class Exercisesetting extends Component{ @@ -636,6 +642,7 @@ class Exercisesetting extends Component{ format="YYYY-MM-DD HH:mm" showToday={false} disabledTime={disabledDateTime} + disabledDate={disabledDate} onChange={this.onChangeTimepublish} value={publish_time && moment(publish_time,"YYYY-MM-DD HH:mm")} disabled={ publish_timetype===true?true:!flagPageEdit } @@ -661,6 +668,7 @@ class Exercisesetting extends Component{ width={"240px"} format="YYYY-MM-DD HH:mm" disabledTime={disabledDateTime} + disabledDate={disabledDate} onChange={this.onChangeTimeEnd} value={end_time && moment(end_time,"YYYY-MM-DD HH:mm")} disabled={ end_timetype===true?true:!flagPageEdit} diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js index 5bbbe1a14..59d3dce17 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js @@ -27,6 +27,11 @@ function disabledDateTime() { }; } +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} + + class GraduationTaskssettingapp extends Component{ constructor(props){ @@ -1181,6 +1186,7 @@ class GraduationTaskssettingapp extends Component{ value={publish_time===null||publish_time===""?"":moment(publish_time, dateFormat)} onChange={this.onChangeTimepublish} disabledTime={disabledDateTime} + disabledDate={disabledDate} disabled={this.props.isAdmin()===true?starttimetype===true?true:flagPageEdit===true?false:true:true} className={ this.state.publishTimetypes===true?"noticeTip":""} /> @@ -1218,6 +1224,7 @@ class GraduationTaskssettingapp extends Component{ value={end_time===null||end_time===""?"":moment(end_time, dateFormat)} onChange={this.onChangeTimeend} disabledTime={disabledDateTime} + disabledDate={disabledDate} // disabled={this.props.isSuperAdmin()===true?flagPageEdit===true?false:true:this.props.isAdmin()===true?endtimetype===true?true:flagPageEdit===true?false:true:true} disabled={this.props.isAdmin()===true?endtimetype===true?true:flagPageEdit===true?false:true:true} className={this.state.endTimetypes===true||end_timetype===true?"noticeTip":""} @@ -1269,6 +1276,7 @@ class GraduationTaskssettingapp extends Component{ width={"210px"} value={latetime===null||latetime===""?"":moment(latetime, dateFormat)} disabledTime={disabledDateTime} + disabledDate={disabledDate} onChange={this.onChangeTimelatetime} disabled={this.props.isAdmin()===true?allowlate===true||allowlate===1?flagPageEdit===true?false:true:true:true} className={ latetimetype===true?"noticeTip":""} @@ -1319,6 +1327,7 @@ class GraduationTaskssettingapp extends Component{ width={"210px"} value={commenttime===null||commenttime=== ""?"":moment(commenttime, dateFormat)} disabledTime={disabledDateTime} + disabledDate={disabledDate} onChange={this.onChangeTimecommenttime} disabled={this.props.isAdmin()===true?flagPageEdit===true?false:true:true} className={ commenttimetype===true?"noticeTip":""} diff --git a/public/react/src/modules/courses/new/CoursesNew.js b/public/react/src/modules/courses/new/CoursesNew.js index b817136ed..c5602d285 100644 --- a/public/react/src/modules/courses/new/CoursesNew.js +++ b/public/react/src/modules/courses/new/CoursesNew.js @@ -28,6 +28,9 @@ function disabledDateTime() { }; } +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} class CoursesNew extends Component { @@ -572,6 +575,7 @@ class CoursesNew extends Component { width={"210px"} value={datatime === undefined ? "" :datatime === null ? "" : moment(datatime, dateFormat)} disabledTime={disabledDateTime} + disabledDate={disabledDate} dropdownClassName="hideDisable" onChange={this.onChangeTimepublishs} /> diff --git a/public/react/src/modules/courses/poll/PollDetailTabForthRules.js b/public/react/src/modules/courses/poll/PollDetailTabForthRules.js index 292830fb8..8b62dd5e4 100644 --- a/public/react/src/modules/courses/poll/PollDetailTabForthRules.js +++ b/public/react/src/modules/courses/poll/PollDetailTabForthRules.js @@ -26,6 +26,12 @@ function disabledDateTime() { // disabledSeconds: () => range(1,60) } } + +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} + + class PollDetailTabForthRules extends Component{ constructor(props){ super(props); @@ -404,6 +410,7 @@ class PollDetailTabForthRules extends Component{ showTime={{ format: 'HH:mm' }} format="YYYY-MM-DD HH:mm" disabledTime={disabledDateTime} + disabledDate={disabledDate} disabled={ rule.e_timeflag ===undefined?rule.publish_time===null?false:!flagPageEdit:rule.p_timeflag == true ? true : !flagPageEdit} style={{"height":"42px",width:'100%'}} > @@ -429,6 +436,7 @@ class PollDetailTabForthRules extends Component{ showTime={{ format: 'HH:mm' }} format="YYYY-MM-DD HH:mm" disabledTime={disabledDateTime} + disabledDate={disabledDate} disabled={ rule.e_timeflag ===undefined?rule.publish_time===null?false:!flagPageEdit:rule.e_timeflag == true ? true : !flagPageEdit} style={{"height":"42px"}} > diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index b07392153..21f03a819 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -47,6 +47,9 @@ function disabledDateTime() { } } +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} class Trainingjobsetting extends Component { //unifiedsetting 统一设置 @@ -1935,6 +1938,7 @@ class Trainingjobsetting extends Component { id={"publishtimeid"} disabledDate={this.disabledStartDatestart} disabledTime={disabledDateTime} + disabledDate={disabledDate} className={borreds} showTime={{ format: 'HH:mm' }} format="YYYY-MM-DD HH:mm" @@ -1967,6 +1971,7 @@ class Trainingjobsetting extends Component { showToday={false} id={"end_timeid"} disabledTime={disabledDateTime} + disabledDate={disabledDate} showTime={{ format: 'HH:mm' }} className={borredss} format="YYYY-MM-DD HH:mm" @@ -2049,6 +2054,7 @@ class Trainingjobsetting extends Component { showToday={false} id={"late_timeid"} disabledTime={disabledDateTime} + disabledDate={disabledDate} format="YYYY-MM-DD HH:mm" value={late_time && moment(late_time, dataformat)} onChange={this.onEndChangeys} diff --git a/public/react/src/modules/tpm/TPMsettings/TPMsettings.js b/public/react/src/modules/tpm/TPMsettings/TPMsettings.js index 8eb2c76dd..bb318ba13 100644 --- a/public/react/src/modules/tpm/TPMsettings/TPMsettings.js +++ b/public/react/src/modules/tpm/TPMsettings/TPMsettings.js @@ -199,6 +199,10 @@ function disabledDateTime() { // disabledSeconds: () => [0, 60], }; } + +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} export default class TPMsettings extends Component { constructor(props) { super(props) @@ -1144,7 +1148,7 @@ export default class TPMsettings extends Component { } onChangeTimePicker =(value, dateString)=> { this.setState({ - opening_time:moment(handleDateStrings(dateString)) + opening_time: dateString=== ""?"":moment(handleDateStrings(dateString)) }) } @@ -1871,6 +1875,7 @@ export default class TPMsettings extends Component { width={178} locale={locale} disabledTime={disabledDateTime} + disabledDate={disabledDate} placeholder="请选择开启时间" value={opening_time===null||opening_time===""?"":moment(opening_time, dateFormat)} onChange={this.onChangeTimePicker} diff --git a/public/react/src/modules/tpm/newshixuns/Newshixuns.js b/public/react/src/modules/tpm/newshixuns/Newshixuns.js index f9c8f5b10..790402a22 100644 --- a/public/react/src/modules/tpm/newshixuns/Newshixuns.js +++ b/public/react/src/modules/tpm/newshixuns/Newshixuns.js @@ -191,7 +191,9 @@ function disabledDateTime() { }; } - +function disabledDate(current) { + return current && current < moment().endOf('day').subtract(1, 'days'); +} class Newshixuns extends Component { constructor(props) { super(props) @@ -743,7 +745,7 @@ class Newshixuns extends Component { onChangeTimePicker = (value, dateString) => { this.setState({ - TimePickervalue: moment(handleDateStrings(dateString)) + TimePickervalue: dateString=== ""?"":moment(handleDateStrings(dateString)) }) } @@ -1288,7 +1290,7 @@ class Newshixuns extends Component { placeholder="请选择开启时间" onChange={this.onChangeTimePicker} value={TimePickervalue && moment(TimePickervalue, "YYYY-MM-DD HH:mm")} - + disabledDate={disabledDate} disabledTime={disabledDateTime} dropdownClassName="hideDisable" /> From 7eb2e4c71351398cbcbf5a1f2c9b77c1099a9e1b Mon Sep 17 00:00:00 2001 From: p31729568 Date: Wed, 31 Jul 2019 13:42:05 +0800 Subject: [PATCH 7/7] move user project search api controller --- app/controllers/projects_controller.rb | 8 -------- app/controllers/users/base_controller.rb | 2 +- app/controllers/users/projects_controller.rb | 11 +++++++++++ app/views/{ => users}/projects/search.json.jbuilder | 0 config/routes.rb | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) rename app/views/{ => users}/projects/search.json.jbuilder (100%) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index c9ed6c597..672477790 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -1,10 +1,2 @@ class ProjectsController < ApplicationController - def search - query_params = { keyword: params[:keyword], category: 'manage' } - projects = Users::ProjectService.new(current_user, query_params).call - - params[:limit] = params[:per_page].to_i.zero? ? 20 : params[:per_page].to_i - @count = projects.count - @projects = paginate projects - end end \ No newline at end of file diff --git a/app/controllers/users/base_controller.rb b/app/controllers/users/base_controller.rb index fd138a182..969aca320 100644 --- a/app/controllers/users/base_controller.rb +++ b/app/controllers/users/base_controller.rb @@ -43,7 +43,7 @@ class Users::BaseController < ApplicationController page = page_value per_page = per_page_value - return Kaminari.paginate_array(objs).page(page).per(per_page) unless observed_logged_user? && opts[:special] + return Kaminari.paginate_array(objs).page(page).per(per_page) unless opts[:special] && observed_logged_user? # note: 为实现第一页少一条记录,让前端放置新建入口 if page == 1 diff --git a/app/controllers/users/projects_controller.rb b/app/controllers/users/projects_controller.rb index 863b99b37..07f4d5cac 100644 --- a/app/controllers/users/projects_controller.rb +++ b/app/controllers/users/projects_controller.rb @@ -1,4 +1,6 @@ class Users::ProjectsController < Users::BaseController + skip_before_action :check_observed_user_exists!, only: [:search] + def index projects = Users::ProjectService.new(observed_user, query_params).call @@ -6,6 +8,15 @@ class Users::ProjectsController < Users::BaseController @projects = paginate(projects.includes(:project_score, owner: { user_extension: :school }), special: true) end + def search + query_params = { keyword: params[:keyword], category: 'manage' } + projects = Users::ProjectService.new(current_user, query_params).call + + params[:limit] = params[:per_page].to_i.zero? ? 20 : params[:per_page].to_i + @count = projects.count + @projects = paginate projects + end + private def query_params diff --git a/app/views/projects/search.json.jbuilder b/app/views/users/projects/search.json.jbuilder similarity index 100% rename from app/views/projects/search.json.jbuilder rename to app/views/users/projects/search.json.jbuilder diff --git a/config/routes.rb b/config/routes.rb index 2f9eed61b..581f563b0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -75,7 +75,7 @@ Rails.application.routes.draw do get :system_update resource :trial_apply, only: [:create] - resources :projects, only: [] do + resources :projects, module: :users, only: [] do get :search, on: :collection end