diff --git a/config/routes.rb b/config/routes.rb index 22808ba10..df14228b8 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,893 +1,892 @@ -Rails.application.routes.draw do - - require 'sidekiq/web' - require 'admin_constraint' - mount Sidekiq::Web => '/sidekiq', :constraints => AdminConstraint.new - - get 'attachments/download/:id', to: 'attachments#show' - get 'attachments/download/:id/:filename', to: 'attachments#show' - - resources :edu_settings - scope '/api' do - get 'home/index' - get 'home/search' - - get 'search', to: 'searchs#index' - - post 'praise_tread/like', to: 'praise_tread#like' - delete 'praise_tread/unlike', to: 'praise_tread#unlike' - - put 'commons/hidden', to: 'commons#hidden' - put 'commons/unhidden', to: 'commons#unhidden' - delete 'commons/delete', to: 'commons#delete' - - resources :memos do - member do - post :sticky_or_cancel - post :hidden - get :more_reply - end - - collection do - post :reply - end - end - - resources :tem_tests - # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html - # - # - resources :accounts do - - collection do - post :login - post :register - post :reset_password - get :logout - get :get_verification_code - get :valid_email_and_phone - end - - end - - resources :users do - member do - get :homepage_info - end - - scope module: :users do - resources :courses, only: [:index] - resources :shixuns, only: [:index] - resources :projects, only: [:index] - resources :subjects, only: [:index] - resources :question_banks, only: [:index] - resource :experience_records, only: [:show] - resource :grade_records, only: [:show] - resource :watch, only: [:create, :destroy] - resources :project_packages, only: [:index] - # 私信 - resources :private_messages, only: [:index, :create, :destroy] - resources :recent_contacts, only: [:index] - resource :private_message_details, only: [:show] - resource :unread_message_info, only: [:show] - - # 视频 - resources :videos, only: [:index, :update] do - collection do - get :review - post :batch_publish - post :cancel - end - end - resource :video_auths, only: [:create, :update] - end - - - collection do - post :following - post :unfollow - get :get_user_info - get :attachment_show - get :html_show - get :get_navigation_info - post :reply_message - get :search_user_projects - post :brief_introduction - post :attendance - get :system_update - - resource :trial_apply, only: [:create] - resources :projects, module: :users, only: [] do - get :search, on: :collection - end - - resources :tidings, only: [:index] - - scope module: :users do - resource :interest, only: [:create] - - resources :accounts, only: [:show, :update] do - resource :phone_bind, only: [:create] - resource :email_bind, only: [:create] - resource :password, only: [:update] - resource :avatar, only: [:update] - resource :auth_attachment, only: [:create] - resource :authentication_apply, only: [:create] - resource :professional_auth_apply, only: [:create] - end - end - end - end - resources :users_for_private_messages, only: [:index] - - resources :myshixuns, param: :identifier, shallow: true do - member do - post :repository - post :commits - post :file_content - post :update_file - get :reset_my_game - post :html_content - get :open_webssh - get :challenges - end - collection do - get :sigle_mul_test - match :training_task_status, :via => [:get, :post] - match :code_runinng_message, :via => [:get, :post] - end - resources :games - end - - resources :games, path: :tasks, param: :identifier do - member do - get :star - get :git_entries - get :answer - get :answer_grade - get :rep_content - get :reset_original_code - get :reset_passed_code - post :file_update - post :choose_build - get :game_build - get :game_status - post :plus_or_cancel_praise - get :cost_time - get :system_update - get :sync_modify_time - get :picture_display - get :sync_codes - get :close_webssh - get :get_answer_info - get :unlock_answer - get :check_test_sets - get :unlock_choose_answer - get :get_choose_answer - - end - collection do - get :challenges - end - end - - resources :shixuns, param: :identifier do - collection do - get :menus - get :get_recommend_shixuns - get :departments - get :get_mirror_script - post :apply_shixun_mirror - get :download_file - end - - member do - post :copy - get :propaedeutics - get :show_right - get :operation - get :ranking_list - get :discusses - get :tasks - get :collaborators - get :settings - get :get_script_contents - get :get_custom_script - post :repository - post :commits - post :file_content - post :update_file - post :close - post :add_file - get :fork_list - post :update_propaedeutics - get :add_collaborators - post :shixun_members_added - match :change_manager, :via => [:get, :post] - get :search_user_courses - post :send_to_course - delete :collaborators_delete - get :cancel_publish - get :publish - get :shixun_exec - end - - resources :challenges do - member do - get 'index_up' - get 'index_down' - post 'create_choose_question' - get 'show_choose_question' - match 'choose_type_show', :via => [:get, :post] - match 'edit_choose_question', :via => [:get, :post] - match 'update_choose_question', :via => [:get, :post] - delete 'destroy_challenge_choose' - post :crud_answer - get :answer - - end - end - - resources :repositories do - collection do - post :add_project - post :fork_project - - post :file_tree # 目录树 - post :update_file # 文件更新 - post :file_content # 文件内容 - - post :commits # 提交记录 - end - end - end - - resources :discusses do - collection do - get :new_message - get :forum_discusses - end - - member do - post :reply - post :hidden - post :reward_code - post :plus - end - end - - resources :subjects, path: :paths do - member do - get 'choose_subject_shixun' - get 'publish' - get 'cancel_publish' - get 'cancel_has_publish' - get 'statistics' - get 'shixun_report' - get 'school_report' - post 'update_attr' - post :search_members - post 'add_subject_members' - delete 'delete_member' - get :choose_course - post 'send_to_course' - delete :delete_member - post :up_member_position - post :down_member_position - get :right_banner - end - - collection do - get 'create_subject' - get 'new_subject' - post 'append_to_stage' - get 'search' - end - end - - resources :stages do - member do - get 'down_position' - get 'up_position' - end - end - - resources :files, only: [:index, :show, :update] do - collection do - delete :bulk_delete - put :bulk_move - post :bulk_send - put :bulk_public - get :public_with_course_and_project - get :mine_with_course_and_project - post :import - post :upload - put :bulk_publish - end - member do - get :histories - end - end - - resources :courses do - member do - get 'settings', :action => 'settings', :as => 'settings' - post 'set_invite_code_halt' - post 'set_public_or_private' - post 'search_teacher_candidate' - post 'add_teacher' - post 'create_graduation_group' - post 'join_graduation_group' - post 'set_course_group' - post 'change_course_admin' - post 'change_course_teacher' - post 'delete_course_teacher' - post 'teacher_application_review' - post 'transfer_to_course_group' - post 'delete_from_course' - post 'add_students_by_search' - post 'create_group_by_importing_file' - post 'duplicate_course' - post 'visits_plus_one' - get 'get_historical_courses' - get 'get_historical_course_students' - get 'course_group_list' - get 'add_teacher_popup' - get 'teachers' - get 'apply_teachers' - get 'graduation_group_list' - get 'top_banner' - get 'left_banner' - get 'students' - get 'all_course_groups' - get 'search_users' - get 'base_info' - get 'attahcment_category_list' - get 'export_member_scores_excel' #导出课堂信息 - get 'export_couser_info' - get 'export_member_act_score' - post 'switch_to_teacher' - post 'switch_to_assistant' - post 'switch_to_student' - post 'exit_course' - get 'informs' - post 'update_informs' - post 'new_informs' - get 'online_learning' - post 'join_excellent_course' - get 'tasks_list' - post 'update_task_position' - end - - collection do - post 'apply_to_join_course' - post 'search_course_list' - get 'board_list' - get 'mine' - get 'search_slim' - end - - resources :polls, only:[:index,:new,:create] do - collection do - post :publish # 立即发布 - post :end_poll # 立即截止 - post :destroys # 多个删除 - post :set_public # 设置公开 - post :join_poll_banks # 加入习题集 - get :my_polls #我的问卷题库 - get :public_polls # 公共问卷题库 - get :publish_modal # 立即发布弹窗内容 - get :end_poll_modal # 立即截止弹窗内容 - end - end - - resources :homework_commons, shallow: true do - - member do - get :group_list - post :homework_code_repeat - get :code_review_results - get :code_review_detail - post :update_explanation - get :show_comment - get :settings - post :update_settings - match 'works_list', :via => [:get, :post] - # post :works_list - get :reference_answer - get :publish_groups - get :end_groups - post :alter_name - get :update_score - get :update_student_score - end - - collection do - post 'create_shixun_homework' - match 'shixuns', via: [:get, :post] - match 'subjects', via: [:get, :post] - post 'create_subject_homework' - post 'publish_homework' - post 'end_homework' - post 'set_public' - post 'move_to_category' - get 'choose_category' - post 'multi_destroy' - post 'add_to_homework_bank' - end - - resources :student_works do - member do - get :shixun_work - get :shixun_work_report - post :adjust_review_score - get :commit_des - post :update_des - post :adjust_score - post :add_score - post :add_score_reply - delete :destroy_score - delete :destroy_score_reply - get :comment_list - get :supply_attachments - post :revise_attachment - delete :destroy_score - post :appeal_anonymous_score - post :deal_appeal_score - post :cancel_appeal - get :export_shixun_work_report - end - - collection do - get :search_member_list - get :check_project - get :cancel_relate_project - post :relate_project - delete :delete_work - end - end - end - - - resources :boards, shallow: true do - resources :messages do - collection do - delete :bulk_delete - put :bulk_move - post :bulk_send - put :bulk_public - end - - member do - get :reply_list - put :sticky_top - post :reply - end - end - member do - post 'move_category' - end - end - - resources :exercises ,only:[:index,:new,:create] do - collection do - get :my_exercises #我的试卷题库 - get :public_exercises # 公共试卷题库 - get :publish_modal # 立即发布弹窗内容 - get :end_modal # 立即截止弹窗内容 - post :destroys - post :set_public # 设置公开 - post :join_exercise_banks # 加入习题集 - post :publish # 立即发布 - post :end_exercise # 立即截止 - - end - end - - resources :course_groups, shallow: true do - member do - post 'rename_group' - post 'move_category' - end - - collection do - end - end - - resources :graduation_topics do - member do - post :refuse_student_topic - post :accept_student_topic - post :student_select_topic - post :student_cancel_topic - get :show_detail - get :show_comment - end - collection do - delete :destroys - post :set_public - get :export - post :add_to_bank - end - end - - resources :graduation_tasks, shallow: true do - resources :graduation_works do - collection do - post 'search_member_list' - get 'check_project' - post 'relate_project' - get 'cancel_relate_project' - post 'revise_attachment' - end - - member do - get 'comment_list' - post 'add_score' - post 'adjust_score' - delete 'delete_score' - get 'supply_attachments' - post 'revise_attachment' - post :assign_teacher - end - end - member do - get 'settings' - post 'update_settings' - get 'tasks_list' - get :show_comment - end - - collection do - post 'set_public' - delete 'multi_destroy' - post 'publish_task' - post 'end_task' - post 'add_to_bank' - end - end - end - - resources :polls,except:[:index,:new,:create] do - member do - get :poll_setting - post :commit_setting - get :start_answer - post :commit_poll - get :commit_result - get :poll_lists # 问卷的答题列表 - post :cancel_publish #撤销发布 - get :cancel_publish_modal #撤销发布的弹窗 - get :common_header - end - resources :poll_questions,only:[:new,:create] - end - - resources :poll_questions,except:[:new,:create,:index] do - member do - post :delete_answer - post :up_down - post :commit_answer - end - resource :poll_votes,only:[:create,:destroy] - end - - resources :exercises do - member do - get :choose_shixun - get :commit_shixun - get :exercise_setting - post :commit_setting - get :start_answer - post :commit_exercise - get :redo_modal #打回重做弹窗内容 - post :redo_exercise - get :review_exercise - get :exercise_lists - # get :blank_exercise #摒弃,仅作为测试html页面才会使用 - get :export_exercise - get :common_header - get :exercise_result - post :cancel_exercise - get :begin_commit #提交前的弹窗 - end - resources :exercise_questions,only:[:new,:create,:index] - end - - resources :exercise_questions,except:[:new,:create,:index] do - member do - post :up_down - post :delete_answer - post :adjust_score - post :update_scores - end - resource :exercise_answers,only:[:create,:destroy] - end - - - resources :course_modules, shallow: true do - member do - get 'sticky_module' - get 'hidden_module' - post 'rename_module' - post 'add_second_category' - end - collection do - post 'unhidden_modules' - end - end - - resources :course_second_categories, shallow: true do - member do - post 'rename_category' - post 'move_category' - end - collection do - - end - end - - resources :question_banks do - collection do - get :bank_list - post :save_banks - get :my_courses - post :send_to_course - delete :multi_delete - post :multi_public - end - end - - resources :homework_banks do - member do - post :set_public - end - end - - resources :gtopic_banks - resources :task_banks - - resources :exercise_banks do - collection do - get :choose_shixun - end - - member do - get :commit_shixun - end - end - - resources :exercise_bank_questions do - member do - post :up_down - get :choose_shixun - end - end - - resources :poll_bank_questions - - resources :attachments - - resources :schools do - member do - resources :departments, only: [] do - get :for_option, on: :collection - end - end - collection do - get :school_list - get :for_option - end - - scope module: :ecs do - get :detail, to: 'homes#index' - - resources :ec_majors, only: [:index] - resources :ec_major_schools, only: [:index, :create, :destroy] - end - end - resources :add_school_applies, only: [:create] - resources :add_department_applies, only: [:create] - - # 为避免url过长以及层级过深,路由定义和controller继承都做了处理 - scope module: :ecs do - resources :ec_major_schools, only: [] do - resources :major_managers, only: [:create, :destroy] - resources :ec_years, only: [:index, :create, :destroy] - end - - resources :ec_years, only: [] do - resource :ec_training_objectives, only: [:show, :create] - resources :ec_graduation_requirements, only: [:index, :create] - resource :requirement_support_objectives, only: [:show, :create, :destroy] - resource :subitem_support_standards, only: [:show, :create, :destroy] - resource :students, only: [:show, :destroy] do - post :import, on: :collection - end - - resources :ec_courses, only: [:index, :create, :destroy] do - post :link_course, on: :member - - collection do - post :import - get :search - end - end - - resource :graduation_course_supports, only: [:show, :create] - resource :reach_evaluation, only: [:show, :create] - resource :reach_criteria, only: [:create] - end - - resources :ec_courses, only: [] do - resource :evaluation, only: [:show, :create] - resources :course_managers, only: [:create, :destroy] - resources :course_targets, only: [:index, :create] do - get :with_achievement_methods, on: :collection - - resource :course_achievement_methods, only: [:create] - end - resources :course_evaluations, only: [:index, :create, :update, :destroy] do - member do - get :average_score_import_template - get :detail_score_import_template - get :import_student_achievement - end - get :slimmer, on: :collection - end - resource :score_levels, only: [:show, :create] - end - end - - resource :zip, only: [] do - collection do - get :shixun_report - get :export_exercises - end - end - - resources :repertoires, only: [:index] - - scope module: :competitions do - resources :competitions, only: [:index, :show] do - resources :competition_modules, only: [:index, :show, :update] - resource :competition_staff - resources :competition_teams, only: [:index, :show] do - post :join, on: :collection - post :leave, on: :member - end - resources :teachers, only: [:index] - resources :students, only: [:index] - end - end - - resources :project_package_categories, only: [:index] - resources :project_packages, only: [:index, :show, :create, :update, :destroy] do - resources :bidding_users, only: [:create] do - post :win, on: :collection - end - end - - resources :libraries, only: [:index, :show, :create, :update, :destroy] - - scope module: :projects do - resources :project_applies, only: [:create] - end - - post 'callbacks/aliyun_vod', to: 'callbacks/aliyun_vods#create' - end - - namespace :admins do - get '/', to: 'dashboards#index' - resources :dashboards, only: [:index] do - collection do - get :month_active_user - get :evaluate - end - end - resources :files, only: [:create] - - resources :daily_school_statistics, only: [:index] do - get :export, on: :collection - end - - resources :school_statistics, only: [:index] do - get :contrast, on: :collection - end - - resources :users, only: [:index, :edit, :update, :destroy] do - member do - post :reward_grade - post :lock - post :unlock - post :active - end - end - resource :import_users, only: [:create] - resource :import_course_members, only: [:create] - - resources :library_applies, only: [:index] do - member do - post :agree - post :refuse - end - end - resources :video_applies, only: [:index] do - member do - post :agree - post :refuse - end - end - resources :identity_authentications, only: [:index] do - member do - post :agree - post :refuse - end - end - resources :professional_authentications, only: [:index] do - member do - post :agree - post :refuse - end - end - resources :shixun_authorizations, only: [:index] do - member do - post :agree - post :refuse - end - end - resources :subject_authorizations, only: [:index] do - member do - post :agree - post :refuse - end - end - resources :project_package_applies, only: [:index] do - member do - post :agree - post :refuse - end - end - resources :shixuns, only: [:index,:destroy] - resources :shixun_settings, only: [:index,:update] - resources :mirror_repositories, only: [:index, :new, :create, :edit, :update, :destroy] do - collection do - post :merge - get :for_select - end - - resources :mirror_scripts, only: [:index, :new, :create, :edit, :update, :destroy] - end - resources :choose_mirror_repositories, only: [:new, :create] - resources :departments, only: [:index, :create, :edit, :update, :destroy] do - resource :department_member, only: [:create, :update, :destroy] - - post :merge, on: :collection - end - resources :myshixuns, only: [:index] - end - - resources :colleges, only: [] do - member do - get :statistics - get :course_statistics - get :student_shixun - get :shixun_time - get :shixun_report_count - get :teachers - get :shixun_chart_data - get :student_hot_evaluations - end - end - - #git 认证回调 - match 'gitauth/*url', to: 'gits#auth', via: :all - - get 'oauth/get_code', to: 'oauth#get_code' - get 'oauth/get_token_callback', to: 'oauth#get_token_callback' - - root 'main#index' - - ## react用 - get '*path', to: 'main#index', constraints: ReactConstraint.new -end +Rails.application.routes.draw do + + require 'sidekiq/web' + require 'admin_constraint' + mount Sidekiq::Web => '/sidekiq', :constraints => AdminConstraint.new + + get 'attachments/download/:id', to: 'attachments#show' + get 'attachments/download/:id/:filename', to: 'attachments#show' + + resources :edu_settings + scope '/api' do + get 'home/index' + get 'home/search' + + get 'search', to: 'searchs#index' + + post 'praise_tread/like', to: 'praise_tread#like' + delete 'praise_tread/unlike', to: 'praise_tread#unlike' + + put 'commons/hidden', to: 'commons#hidden' + put 'commons/unhidden', to: 'commons#unhidden' + delete 'commons/delete', to: 'commons#delete' + + resources :memos do + member do + post :sticky_or_cancel + post :hidden + get :more_reply + end + + collection do + post :reply + end + end + + resources :tem_tests + # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html + # + # + resources :accounts do + + collection do + post :login + post :register + post :reset_password + get :logout + get :get_verification_code + get :valid_email_and_phone + end + + end + + resources :users do + member do + get :homepage_info + end + + scope module: :users do + resources :courses, only: [:index] + resources :shixuns, only: [:index] + resources :projects, only: [:index] + resources :subjects, only: [:index] + resources :question_banks, only: [:index] + resource :experience_records, only: [:show] + resource :grade_records, only: [:show] + resource :watch, only: [:create, :destroy] + resources :project_packages, only: [:index] + # 私信 + resources :private_messages, only: [:index, :create, :destroy] + resources :recent_contacts, only: [:index] + resource :private_message_details, only: [:show] + resource :unread_message_info, only: [:show] + + # 视频 + resources :videos, only: [:index, :update] do + collection do + get :review + post :batch_publish + post :cancel + end + end + resource :video_auths, only: [:create, :update] + end + + + collection do + post :following + post :unfollow + get :get_user_info + get :attachment_show + get :html_show + get :get_navigation_info + post :reply_message + get :search_user_projects + post :brief_introduction + post :attendance + get :system_update + + resource :trial_apply, only: [:create] + resources :projects, module: :users, only: [] do + get :search, on: :collection + end + + resources :tidings, only: [:index] + + scope module: :users do + resource :interest, only: [:create] + + resources :accounts, only: [:show, :update] do + resource :phone_bind, only: [:create] + resource :email_bind, only: [:create] + resource :password, only: [:update] + resource :avatar, only: [:update] + resource :auth_attachment, only: [:create] + resource :authentication_apply, only: [:create] + resource :professional_auth_apply, only: [:create] + end + end + end + end + resources :users_for_private_messages, only: [:index] + + resources :myshixuns, param: :identifier, shallow: true do + member do + post :repository + post :commits + post :file_content + post :update_file + get :reset_my_game + post :html_content + get :open_webssh + get :challenges + end + collection do + get :sigle_mul_test + match :training_task_status, :via => [:get, :post] + match :code_runinng_message, :via => [:get, :post] + end + resources :games + end + + resources :games, path: :tasks, param: :identifier do + member do + get :star + get :git_entries + get :answer + get :answer_grade + get :rep_content + get :reset_original_code + get :reset_passed_code + post :file_update + post :choose_build + get :game_build + get :game_status + post :plus_or_cancel_praise + get :cost_time + get :system_update + get :sync_modify_time + get :picture_display + get :sync_codes + get :close_webssh + get :get_answer_info + get :unlock_answer + get :check_test_sets + get :unlock_choose_answer + get :get_choose_answer + + end + collection do + get :challenges + end + end + + resources :shixuns, param: :identifier do + collection do + get :menus + get :get_recommend_shixuns + get :departments + get :get_mirror_script + post :apply_shixun_mirror + get :download_file + end + + member do + post :copy + get :propaedeutics + get :show_right + get :operation + get :ranking_list + get :discusses + get :tasks + get :collaborators + get :settings + get :get_script_contents + get :get_custom_script + post :repository + post :commits + post :file_content + post :update_file + post :close + post :add_file + get :fork_list + post :update_propaedeutics + get :add_collaborators + post :shixun_members_added + match :change_manager, :via => [:get, :post] + get :search_user_courses + post :send_to_course + delete :collaborators_delete + get :cancel_publish + get :publish + get :shixun_exec + end + + resources :challenges do + member do + get 'index_up' + get 'index_down' + post 'create_choose_question' + get 'show_choose_question' + match 'choose_type_show', :via => [:get, :post] + match 'edit_choose_question', :via => [:get, :post] + match 'update_choose_question', :via => [:get, :post] + delete 'destroy_challenge_choose' + post :crud_answer + get :answer + + end + end + + resources :repositories do + collection do + post :add_project + post :fork_project + + post :file_tree # 目录树 + post :update_file # 文件更新 + post :file_content # 文件内容 + + post :commits # 提交记录 + end + end + end + + resources :discusses do + collection do + get :new_message + get :forum_discusses + end + + member do + post :reply + post :hidden + post :reward_code + post :plus + end + end + + resources :subjects, path: :paths do + member do + get 'choose_subject_shixun' + get 'publish' + get 'cancel_publish' + get 'cancel_has_publish' + get 'statistics' + get 'shixun_report' + get 'school_report' + post 'update_attr' + post :search_members + post 'add_subject_members' + delete 'delete_member' + get :choose_course + post 'send_to_course' + delete :delete_member + post :up_member_position + post :down_member_position + get :right_banner + end + + collection do + get 'create_subject' + get 'new_subject' + post 'append_to_stage' + get 'search' + end + end + + resources :stages do + member do + get 'down_position' + get 'up_position' + end + end + + resources :files, only: [:index, :show, :update] do + collection do + delete :bulk_delete + put :bulk_move + post :bulk_send + put :bulk_public + get :public_with_course_and_project + get :mine_with_course_and_project + post :import + post :upload + put :bulk_publish + end + member do + get :histories + end + end + + resources :courses do + member do + get 'settings', :action => 'settings', :as => 'settings' + post 'set_invite_code_halt' + post 'set_public_or_private' + post 'search_teacher_candidate' + post 'add_teacher' + post 'create_graduation_group' + post 'join_graduation_group' + post 'set_course_group' + post 'change_course_admin' + post 'change_course_teacher' + post 'delete_course_teacher' + post 'teacher_application_review' + post 'transfer_to_course_group' + post 'delete_from_course' + post 'add_students_by_search' + post 'create_group_by_importing_file' + post 'duplicate_course' + post 'visits_plus_one' + get 'get_historical_courses' + get 'get_historical_course_students' + get 'course_group_list' + get 'add_teacher_popup' + get 'teachers' + get 'apply_teachers' + get 'graduation_group_list' + get 'top_banner' + get 'left_banner' + get 'students' + get 'all_course_groups' + get 'search_users' + get 'base_info' + get 'attahcment_category_list' + get 'export_member_scores_excel' #导出课堂信息 + get 'export_couser_info' + get 'export_member_act_score' + post 'switch_to_teacher' + post 'switch_to_assistant' + post 'switch_to_student' + post 'exit_course' + get 'informs' + post 'update_informs' + post 'new_informs' + get 'online_learning' + post 'join_excellent_course' + get 'tasks_list' + post 'update_task_position' + end + + collection do + post 'apply_to_join_course' + post 'search_course_list' + get 'board_list' + get 'mine' + get 'search_slim' + end + + resources :polls, only:[:index,:new,:create] do + collection do + post :publish # 立即发布 + post :end_poll # 立即截止 + post :destroys # 多个删除 + post :set_public # 设置公开 + post :join_poll_banks # 加入习题集 + get :my_polls #我的问卷题库 + get :public_polls # 公共问卷题库 + get :publish_modal # 立即发布弹窗内容 + get :end_poll_modal # 立即截止弹窗内容 + end + end + + resources :homework_commons, shallow: true do + + member do + get :group_list + post :homework_code_repeat + get :code_review_results + get :code_review_detail + post :update_explanation + get :show_comment + get :settings + post :update_settings + match 'works_list', :via => [:get, :post] + # post :works_list + get :reference_answer + get :publish_groups + get :end_groups + post :alter_name + get :update_score + get :update_student_score + end + + collection do + post 'create_shixun_homework' + match 'shixuns', via: [:get, :post] + match 'subjects', via: [:get, :post] + post 'create_subject_homework' + post 'publish_homework' + post 'end_homework' + post 'set_public' + post 'move_to_category' + get 'choose_category' + post 'multi_destroy' + post 'add_to_homework_bank' + end + + resources :student_works do + member do + get :shixun_work + get :shixun_work_report + post :adjust_review_score + get :commit_des + post :update_des + post :adjust_score + post :add_score + post :add_score_reply + delete :destroy_score + delete :destroy_score_reply + get :comment_list + get :supply_attachments + post :revise_attachment + delete :destroy_score + post :appeal_anonymous_score + post :deal_appeal_score + post :cancel_appeal + get :export_shixun_work_report + end + + collection do + get :search_member_list + get :check_project + get :cancel_relate_project + post :relate_project + delete :delete_work + end + end + end + + + resources :boards, shallow: true do + resources :messages do + collection do + delete :bulk_delete + put :bulk_move + post :bulk_send + put :bulk_public + end + + member do + get :reply_list + put :sticky_top + post :reply + end + end + member do + post 'move_category' + end + end + + resources :exercises ,only:[:index,:new,:create] do + collection do + get :my_exercises #我的试卷题库 + get :public_exercises # 公共试卷题库 + get :publish_modal # 立即发布弹窗内容 + get :end_modal # 立即截止弹窗内容 + post :destroys + post :set_public # 设置公开 + post :join_exercise_banks # 加入习题集 + post :publish # 立即发布 + post :end_exercise # 立即截止 + + end + end + + resources :course_groups, shallow: true do + member do + post 'rename_group' + post 'move_category' + end + + collection do + end + end + + resources :graduation_topics do + member do + post :refuse_student_topic + post :accept_student_topic + post :student_select_topic + post :student_cancel_topic + get :show_detail + get :show_comment + end + collection do + delete :destroys + post :set_public + get :export + post :add_to_bank + end + end + + resources :graduation_tasks, shallow: true do + resources :graduation_works do + collection do + post 'search_member_list' + get 'check_project' + post 'relate_project' + get 'cancel_relate_project' + post 'revise_attachment' + end + + member do + get 'comment_list' + post 'add_score' + post 'adjust_score' + delete 'delete_score' + get 'supply_attachments' + post 'revise_attachment' + post :assign_teacher + end + end + member do + get 'settings' + post 'update_settings' + get 'tasks_list' + get :show_comment + end + + collection do + post 'set_public' + delete 'multi_destroy' + post 'publish_task' + post 'end_task' + post 'add_to_bank' + end + end + end + + resources :polls,except:[:index,:new,:create] do + member do + get :poll_setting + post :commit_setting + get :start_answer + post :commit_poll + get :commit_result + get :poll_lists # 问卷的答题列表 + post :cancel_publish #撤销发布 + get :cancel_publish_modal #撤销发布的弹窗 + get :common_header + end + resources :poll_questions,only:[:new,:create] + end + + resources :poll_questions,except:[:new,:create,:index] do + member do + post :delete_answer + post :up_down + post :commit_answer + end + resource :poll_votes,only:[:create,:destroy] + end + + resources :exercises do + member do + get :choose_shixun + get :commit_shixun + get :exercise_setting + post :commit_setting + get :start_answer + post :commit_exercise + get :redo_modal #打回重做弹窗内容 + post :redo_exercise + get :review_exercise + get :exercise_lists + # get :blank_exercise #摒弃,仅作为测试html页面才会使用 + get :export_exercise + get :common_header + get :exercise_result + post :cancel_exercise + get :begin_commit #提交前的弹窗 + end + resources :exercise_questions,only:[:new,:create,:index] + end + + resources :exercise_questions,except:[:new,:create,:index] do + member do + post :up_down + post :delete_answer + post :adjust_score + post :update_scores + end + resource :exercise_answers,only:[:create,:destroy] + end + + + resources :course_modules, shallow: true do + member do + get 'sticky_module' + get 'hidden_module' + post 'rename_module' + post 'add_second_category' + end + collection do + post 'unhidden_modules' + end + end + + resources :course_second_categories, shallow: true do + member do + post 'rename_category' + post 'move_category' + end + collection do + + end + end + + resources :question_banks do + collection do + get :bank_list + post :save_banks + get :my_courses + post :send_to_course + delete :multi_delete + post :multi_public + end + end + + resources :homework_banks do + member do + post :set_public + end + end + + resources :gtopic_banks + resources :task_banks + + resources :exercise_banks do + collection do + get :choose_shixun + end + + member do + get :commit_shixun + end + end + + resources :exercise_bank_questions do + member do + post :up_down + get :choose_shixun + end + end + + resources :poll_bank_questions + + resources :attachments + + resources :schools do + member do + resources :departments, only: [] do + get :for_option, on: :collection + end + end + collection do + get :school_list + get :for_option + end + + scope module: :ecs do + get :detail, to: 'homes#index' + + resources :ec_majors, only: [:index] + resources :ec_major_schools, only: [:index, :create, :destroy] + end + end + resources :add_school_applies, only: [:create] + resources :add_department_applies, only: [:create] + + # 为避免url过长以及层级过深,路由定义和controller继承都做了处理 + scope module: :ecs do + resources :ec_major_schools, only: [] do + resources :major_managers, only: [:create, :destroy] + resources :ec_years, only: [:index, :create, :destroy] + end + + resources :ec_years, only: [] do + resource :ec_training_objectives, only: [:show, :create] + resources :ec_graduation_requirements, only: [:index, :create] + resource :requirement_support_objectives, only: [:show, :create, :destroy] + resource :subitem_support_standards, only: [:show, :create, :destroy] + resource :students, only: [:show, :destroy] do + post :import, on: :collection + end + + resources :ec_courses, only: [:index, :create, :destroy] do + post :link_course, on: :member + + collection do + post :import + get :search + end + end + + resource :graduation_course_supports, only: [:show, :create] + resource :reach_evaluation, only: [:show, :create] + resource :reach_criteria, only: [:create] + end + + resources :ec_courses, only: [] do + resource :evaluation, only: [:show, :create] + resources :course_managers, only: [:create, :destroy] + resources :course_targets, only: [:index, :create] do + get :with_achievement_methods, on: :collection + + resource :course_achievement_methods, only: [:create] + end + resources :course_evaluations, only: [:index, :create, :update, :destroy] do + member do + get :average_score_import_template + get :detail_score_import_template + get :import_student_achievement + end + get :slimmer, on: :collection + end + resource :score_levels, only: [:show, :create] + end + end + + resource :zip, only: [] do + collection do + get :shixun_report + get :export_exercises + end + end + + resources :repertoires, only: [:index] + + scope module: :competitions do + resources :competitions, only: [:index, :show] do + resources :competition_modules, only: [:index, :show, :update] + resource :competition_staff + resources :competition_teams, only: [:index, :show] do + post :join, on: :collection + post :leave, on: :member + end + resources :teachers, only: [:index] + resources :students, only: [:index] + end + end + + resources :project_package_categories, only: [:index] + resources :project_packages, only: [:index, :show, :create, :update, :destroy] do + resources :bidding_users, only: [:create] do + post :win, on: :collection + end + end + + resources :libraries, only: [:index, :show, :create, :update, :destroy] + + scope module: :projects do + resources :project_applies, only: [:create] + end + + post 'callbacks/aliyun_vod', to: 'callbacks/aliyun_vods#create' + end + + namespace :admins do + get '/', to: 'dashboards#index' + resources :dashboards, only: [:index] do + collection do + get :month_active_user + get :evaluate + end + end + resources :files, only: [:create] + + resources :daily_school_statistics, only: [:index] do + get :export, on: :collection + end + + resources :school_statistics, only: [:index] do + get :contrast, on: :collection + end + + resources :users, only: [:index, :edit, :update, :destroy] do + member do + post :reward_grade + post :lock + post :unlock + post :active + end + end + resource :import_users, only: [:create] + + resources :library_applies, only: [:index] do + member do + post :agree + post :refuse + end + end + resources :video_applies, only: [:index] do + member do + post :agree + post :refuse + end + end + resources :identity_authentications, only: [:index] do + member do + post :agree + post :refuse + end + end + resources :professional_authentications, only: [:index] do + member do + post :agree + post :refuse + end + end + resources :shixun_authorizations, only: [:index] do + member do + post :agree + post :refuse + end + end + resources :subject_authorizations, only: [:index] do + member do + post :agree + post :refuse + end + end + resources :project_package_applies, only: [:index] do + member do + post :agree + post :refuse + end + end + resources :shixuns, only: [:index,:destroy] + resources :shixun_settings, only: [:index,:update] + resources :mirror_repositories, only: [:index, :new, :create, :edit, :update, :destroy] do + collection do + post :merge + get :for_select + end + + resources :mirror_scripts, only: [:index, :new, :create, :edit, :update, :destroy] + end + resources :choose_mirror_repositories, only: [:new, :create] + resources :departments, only: [:index, :create, :edit, :update, :destroy] do + resource :department_member, only: [:create, :update, :destroy] + + post :merge, on: :collection + end + resources :myshixuns, only: [:index] + end + + resources :colleges, only: [] do + member do + get :statistics + get :course_statistics + get :student_shixun + get :shixun_time + get :shixun_report_count + get :teachers + get :shixun_chart_data + get :student_hot_evaluations + end + end + + #git 认证回调 + match 'gitauth/*url', to: 'gits#auth', via: :all + + get 'oauth/get_code', to: 'oauth#get_code' + get 'oauth/get_token_callback', to: 'oauth#get_token_callback' + + root 'main#index' + + ## react用 + get '*path', to: 'main#index', constraints: ReactConstraint.new +end diff --git a/public/react/src/modules/courses/completetaskdetails/Completetaskdetails.js b/public/react/src/modules/courses/completetaskdetails/Completetaskdetails.js index 61668207a..833c60e1f 100644 --- a/public/react/src/modules/courses/completetaskdetails/Completetaskdetails.js +++ b/public/react/src/modules/courses/completetaskdetails/Completetaskdetails.js @@ -1,5 +1,5 @@ import React, {Component} from "react"; -import { WordsBtn,on, off, trigger,markdownToHTML,getImageUrl} from 'educoder'; +import { WordsBtn,on, off, trigger,MarkdownToHtml,getImageUrl} from 'educoder'; import { Button, Checkbox, @@ -73,7 +73,8 @@ class Groupjobbandetails extends Component { datas.description===""? : -
+ + //
) } {/*
*/} diff --git a/public/react/src/modules/courses/completetaskdetails/Completetaskpage.js b/public/react/src/modules/courses/completetaskdetails/Completetaskpage.js index ba02e05fd..b74ad13e2 100644 --- a/public/react/src/modules/courses/completetaskdetails/Completetaskpage.js +++ b/public/react/src/modules/courses/completetaskdetails/Completetaskpage.js @@ -1,6 +1,6 @@ import React, {Component} from "react"; import {Link, NavLink} from 'react-router-dom'; -import {WordsBtn, ActionBtn} from 'educoder'; +import {WordsBtn, ActionBtn,MarkdownToHtml} from 'educoder'; import axios from 'axios'; import { notification diff --git a/public/react/src/modules/courses/comtopicdetails/Completetopicdetails.js b/public/react/src/modules/courses/comtopicdetails/Completetopicdetails.js index c314982b6..d62b398c1 100644 --- a/public/react/src/modules/courses/comtopicdetails/Completetopicdetails.js +++ b/public/react/src/modules/courses/comtopicdetails/Completetopicdetails.js @@ -1,5 +1,5 @@ import React, {Component} from "react"; -import { WordsBtn,on, off, trigger,markdownToHTML,getImageUrl} from 'educoder'; +import { WordsBtn,on, off, trigger,MarkdownToHtml,getImageUrl} from 'educoder'; import { Button, Checkbox, @@ -72,7 +72,9 @@ class Completetopicdetails extends Component { datas.description===""? : -
+ + + //
) } {/*
*/} diff --git a/public/react/src/modules/courses/exercise/ExerciseNewCommon.js b/public/react/src/modules/courses/exercise/ExerciseNewCommon.js index a9875523b..f5df492d4 100644 --- a/public/react/src/modules/courses/exercise/ExerciseNewCommon.js +++ b/public/react/src/modules/courses/exercise/ExerciseNewCommon.js @@ -605,7 +605,7 @@ class ExerciseNewCommon extends Component{ 实训题 - {exercise_id && this.goToPreview()}> + {exercise_id && !this.props.hidePreviewButton && this.goToPreview()}> {/* */} 试卷预览 } diff --git a/public/react/src/modules/courses/groupjobbank/Groupjobbandetails.js b/public/react/src/modules/courses/groupjobbank/Groupjobbandetails.js index dc6b12a98..a0ba84549 100644 --- a/public/react/src/modules/courses/groupjobbank/Groupjobbandetails.js +++ b/public/react/src/modules/courses/groupjobbank/Groupjobbandetails.js @@ -1,5 +1,5 @@ import React, {Component} from "react"; -import { WordsBtn,on, off, trigger,markdownToHTML,getImageUrl} from 'educoder'; +import { WordsBtn,on, off, trigger,MarkdownToHtml,getImageUrl} from 'educoder'; import { Button, Checkbox, @@ -74,7 +74,8 @@ class Groupjobbandetails extends Component { datas.description===""? : -
+ + //
) } {/*
*/} diff --git a/public/react/src/modules/courses/groupjobbank/Groupjobquesanswer.js b/public/react/src/modules/courses/groupjobbank/Groupjobquesanswer.js index ae6b227b4..b927f3177 100644 --- a/public/react/src/modules/courses/groupjobbank/Groupjobquesanswer.js +++ b/public/react/src/modules/courses/groupjobbank/Groupjobquesanswer.js @@ -1,5 +1,5 @@ import React, {Component} from "react"; -import { WordsBtn,on, off, trigger,markdownToHTML,getImageUrl} from 'educoder'; +import { WordsBtn,on, off, trigger,MarkdownToHtml,getImageUrl} from 'educoder'; import { Button, Checkbox, @@ -71,7 +71,8 @@ class Groupjobquesanswer extends Component { datas.reference_answer===""? : -
+ + //
) } {/*
*/} diff --git a/public/react/src/modules/courses/poll/PollNew.js b/public/react/src/modules/courses/poll/PollNew.js index 372a79ae6..8b0956ba4 100644 --- a/public/react/src/modules/courses/poll/PollNew.js +++ b/public/react/src/modules/courses/poll/PollNew.js @@ -995,6 +995,37 @@ class PollNew extends Component { } + if(object.question.max_choices){ + if(object.question.max_choices>0){ + if(object.question.min_choices){ + if(object.question.min_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + + if(object.question.min_choices){ + if(object.question.min_choices>0){ + if(object.question.max_choices){ + if(object.question.max_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } var questiontwo = {}; var other = []; var option = []; @@ -1196,6 +1227,40 @@ class PollNew extends Component { } } } + + + if(object.question.max_choices){ + if(object.question.max_choices>0){ + if(object.question.min_choices){ + if(object.question.min_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + + if(object.question.min_choices){ + if(object.question.min_choices>0){ + if(object.question.max_choices){ + if(object.question.max_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + // if (object.question.max_choices < object.question.min_choices) { // this.props.showNotification('可选的最大限制不能小于最小限制!'); // @@ -1482,11 +1547,44 @@ class PollNew extends Component { if(object.question.max_choices>0){ if (object.question.max_choices < object.question.min_choices) { this.props.showNotification(`可选的最大限制不能小于最小限制`); + return; + } + } + } + + if(object.question.max_choices){ + if(object.question.max_choices>0){ + if(object.question.min_choices){ + if(object.question.min_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + if(object.question.min_choices){ + if(object.question.min_choices>0){ + if(object.question.max_choices){ + if(object.question.max_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); return; + } } + } + + // if (object.question.max_choices < object.question.min_choices) { // this.props.showNotification(`可选的最大限制不能小于最小限制`); // @@ -1665,11 +1763,38 @@ class PollNew extends Component { } } } - // if (object.question.max_choices < object.question.min_choices) { - // this.props.showNotification(`可选的最大限制不能小于最小限制`); - // - // return; - // } + + if(object.question.max_choices){ + if(object.question.max_choices>0){ + if(object.question.min_choices){ + if(object.question.min_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + + if(object.question.min_choices){ + if(object.question.min_choices>0){ + if(object.question.max_choices){ + if(object.question.max_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } var questiontwo = {}; var other = []; var option = []; @@ -2240,34 +2365,34 @@ class PollNew extends Component { var minbool = false; var maxbool = false; let arr = this.state.adddom; - if (parseInt(value) === 0 || parseInt(value) === "0" || parseInt(value) === null || parseInt(value) === undefined || parseInt(value) < 1) { - minbool = true; - } - if (max === 0 || max === "0" || max === null || max === undefined) { - maxbool = true; - } - - if (minbool === true && maxbool === true) { - for (var i = 0; i < arr.length; i++) { - if (index === i) { - arr[i].question.min_choices = parseInt(value); - } - } - this.setState({ - adddom: arr - }) - } else { + // if (parseInt(value) === 0 || parseInt(value) === "0" || parseInt(value) === null || parseInt(value) === undefined || parseInt(value) < 1) { + // minbool = true; + // } + // if (max === 0 || max === "0" || max === null || max === undefined) { + // maxbool = true; + // } + // + // if (minbool === true && maxbool === true) { + // for (var i = 0; i < arr.length; i++) { + // if (index === i) { + // arr[i].question.min_choices = parseInt(value); + // } + // } + // this.setState({ + // adddom: arr + // }) + // } else { for (var i = 0; i < arr.length; i++) { if (index === i) { arr[i].question.min_choices = parseInt(value); - arr[i].question.max_choices = length; + // arr[i].question.max_choices = length; break; } } this.setState({ adddom: arr }) - } + // } } @@ -2284,21 +2409,21 @@ class PollNew extends Component { let arr = this.state.adddom; for (var i = 0; i < arr.length; i++) { if (index === i) { - if(parseInt(value)===0&&parseInt(minchoices)===0){ - arr[i].question.min_choices= parseInt(0); - arr[i].question.max_choices = parseInt(0); - }else if(parseInt(minchoices)===0){ - arr[i].question.min_choices= parseInt(2); - arr[i].question.max_choices = parseInt(value); - } - else if(parseInt(value)===0&&parseInt(minchoices)>0){ - arr[i].question.min_choices= parseInt(minchoices); - arr[i].question.max_choices = parseInt(value); - } - else { - arr[i].question.min_choices= minchoices===null?2:minchoices===undefined?2:minchoices===0?2:parseInt(minchoices); + // if(parseInt(value)===0&&parseInt(minchoices)===0){ + // arr[i].question.min_choices= parseInt(0); + // arr[i].question.max_choices = parseInt(0); + // }else if(parseInt(minchoices)===0){ + // arr[i].question.min_choices= parseInt(2); + // arr[i].question.max_choices = parseInt(value); + // } + // else if(parseInt(value)===0&&parseInt(minchoices)>0){ + // arr[i].question.min_choices= parseInt(minchoices); + // arr[i].question.max_choices = parseInt(value); + // } + // else { + // arr[i].question.min_choices= minchoices===null?2:minchoices===undefined?2:minchoices===0?2:parseInt(minchoices); arr[i].question.max_choices = parseInt(value); - } + // } } } // console.log(2119); @@ -2777,7 +2902,7 @@ class PollNew extends Component { { item.question.question_type === 2? {(item.question.min_choices === undefined && item.question.max_choices === undefined ? "不限制" : item.question.min_choices === null && item.question.max_choices === null ? "不限制" : item.question.min_choices === 0 && item.question.max_choices === 0 ? "": item.question.min_choices === "null" && item.question.max_choices === "null" ? "不限制" : "可选" +(item.question.min_choices===undefined||item.question.min_choices===null||item.question.min_choices===""||item.question.min_choices==="null"?2:item.question.min_choices) + "-" + (item.question.max_choices===undefined||item.question.max_choices===null||item.question.max_choices===""||item.question.max_choices==="null"?item.question.answers.length:item.question.max_choices) + "项")} + className="font-16 mt10 ml10">{(item.question.min_choices === undefined && item.question.max_choices === undefined ? "不限制" : item.question.min_choices === null && item.question.max_choices === null ? "不限制" : item.question.min_choices === 0 && item.question.max_choices === 0 ? "": item.question.min_choices === "null" && item.question.max_choices === "null" ? "不限制" : item.question.min_choices === item.question.max_choices && item.question.max_choices === item.question.min_choices ? "可选"+(item.question.max_choices)+"项" : "可选" +(item.question.min_choices===undefined||item.question.min_choices===null||item.question.min_choices===""||item.question.min_choices==="null"?2:item.question.min_choices) + "-" + (item.question.max_choices===undefined||item.question.max_choices===null||item.question.max_choices===""||item.question.max_choices==="null"?item.question.answers.length:item.question.max_choices) + "项")} : "" } diff --git a/public/react/src/modules/courses/poll/PollNewQuestbank.js b/public/react/src/modules/courses/poll/PollNewQuestbank.js index 81aa4d9fc..1a5668834 100644 --- a/public/react/src/modules/courses/poll/PollNewQuestbank.js +++ b/public/react/src/modules/courses/poll/PollNewQuestbank.js @@ -1015,6 +1015,37 @@ class PollNewQuestbank extends Component { return; } + if(object.question.max_choices){ + if(object.question.max_choices>0){ + if(object.question.min_choices){ + if(object.question.min_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + + if(object.question.min_choices){ + if(object.question.min_choices>0){ + if(object.question.max_choices){ + if(object.question.max_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } var questiontwo = {}; var other = []; var option = []; @@ -1214,6 +1245,38 @@ class PollNewQuestbank extends Component { return; } + + if(object.question.max_choices){ + if(object.question.max_choices>0){ + if(object.question.min_choices){ + if(object.question.min_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + + if(object.question.min_choices){ + if(object.question.min_choices>0){ + if(object.question.max_choices){ + if(object.question.max_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } var questiontwo = {}; var other = []; var option = []; @@ -1503,6 +1566,39 @@ class PollNewQuestbank extends Component { return; } + + if(object.question.max_choices){ + if(object.question.max_choices>0){ + if(object.question.min_choices){ + if(object.question.min_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + + if(object.question.min_choices){ + if(object.question.min_choices>0){ + if(object.question.max_choices){ + if(object.question.max_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + var questiontwo = {}; var other = []; var option = []; @@ -1673,6 +1769,39 @@ class PollNewQuestbank extends Component { return; } + + + if(object.question.max_choices){ + if(object.question.max_choices>0){ + if(object.question.min_choices){ + if(object.question.min_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } + + if(object.question.min_choices){ + if(object.question.min_choices>0){ + if(object.question.max_choices){ + if(object.question.max_choices===0){ + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + } + }else { + this.props.showNotification(`最小和最大限制须同时为数值或者“--"`); + return; + + } + } + + } var questiontwo = {}; var other = []; var option = []; @@ -1836,8 +1965,8 @@ class PollNewQuestbank extends Component { question_title: object.question.question_title, question_type: number, is_necessary: object.question.is_necessary, - max_choices: max_choicess===undefined?length:max_choicess===null?length:max_choicess===0?length:max_choicess, - min_choices: min_choicess===undefined?2:min_choicess===null?2:min_choicess===0?2:min_choicess, + max_choices: max_choicess===undefined||max_choicess===null||max_choicess===0||max_choicess==="0"?null:max_choicess, + min_choices: min_choicess===undefined||min_choicess===null||min_choicess===0||min_choicess==="0"?null:min_choicess, question_answers: option, question_other_answer: null, insert_id: insert_id @@ -1908,8 +2037,8 @@ class PollNewQuestbank extends Component { question_title: object.question.question_title, question_type: number, is_necessary: object.question.is_necessary, - max_choices: max_choicess===undefined?length:max_choicess===null?length:max_choicess===0?length:max_choicess, - min_choices: min_choicess===undefined?2:min_choicess===null?2:min_choicess===0?2:min_choicess, + max_choices: max_choicess===undefined||max_choicess===null||max_choicess===0||max_choicess==="0"?null:max_choicess, + min_choices: min_choicess===undefined||min_choicess===null||min_choicess===0||min_choicess==="0"?null:min_choicess, question_answers: option, question_other_answer: null, }; @@ -2240,60 +2369,75 @@ class PollNewQuestbank extends Component { } //最小值 HandleGradationGroupChangee = (value, index, max, length) => { + // console.log("最小值"); + // console.log(value); + // console.log(index); + // console.log(max); + // console.log(length); + + // debugger var minbool = false; var maxbool = false; let arr = this.state.adddom; - if (parseInt(value) === 0 || parseInt(value) === "0" || parseInt(value) === null || parseInt(value) === undefined || parseInt(value) < 1) { - minbool = true; - } - if (max === 0 || max === "0" || max === null || max === undefined) { - maxbool = true; - } - - if (minbool === true && maxbool === true) { - for (var i = 0; i < arr.length; i++) { - if (index === i) { - arr[i].question.min_choices = parseInt(value); - } - } - this.setState({ - adddom: arr - }) - } else { - for (var i = 0; i < arr.length; i++) { - if (index === i) { - arr[i].question.min_choices = parseInt(value); - arr[i].question.max_choices = length; - break; - } + // if (parseInt(value) === 0 || parseInt(value) === "0" || parseInt(value) === null || parseInt(value) === undefined || parseInt(value) < 1) { + // minbool = true; + // } + // if (max === 0 || max === "0" || max === null || max === undefined) { + // maxbool = true; + // } + // + // if (minbool === true && maxbool === true) { + // for (var i = 0; i < arr.length; i++) { + // if (index === i) { + // arr[i].question.min_choices = parseInt(value); + // } + // } + // this.setState({ + // adddom: arr + // }) + // } else { + for (var i = 0; i < arr.length; i++) { + if (index === i) { + arr[i].question.min_choices = parseInt(value); + // arr[i].question.max_choices = length; + break; } - this.setState({ - adddom: arr - }) } + this.setState({ + adddom: arr + }) + // } } //最大值 - HandleGradationGroupChangeee = (value, index, minchoices, length) => { + HandleGradationGroupChangeee = (value, index,minchoices,length) => { + // console.log("2112"); + // console.log(value); + // console.log(minchoices); + // console.log("最大值"); + // console.log(value); + // console.log(index); + // console.log(minchoices); + // console.log(length); let arr = this.state.adddom; for (var i = 0; i < arr.length; i++) { if (index === i) { - if(parseInt(value)===0&&parseInt(minchoices)===0){ - arr[i].question.min_choices= parseInt(0); - arr[i].question.max_choices = parseInt(0); - }else if(parseInt(minchoices)===0){ - arr[i].question.min_choices= parseInt(2); - arr[i].question.max_choices = parseInt(value); - } - else if(parseInt(value)===0&&parseInt(minchoices)>0){ - arr[i].question.min_choices= parseInt(minchoices); - arr[i].question.max_choices = parseInt(value); - } - else { - arr[i].question.min_choices= minchoices===null?2:minchoices===undefined?2:minchoices===0?2:parseInt(minchoices); - arr[i].question.max_choices = parseInt(value); - } + // if(parseInt(value)===0&&parseInt(minchoices)===0){ + // arr[i].question.min_choices= parseInt(0); + // arr[i].question.max_choices = parseInt(0); + // }else if(parseInt(minchoices)===0){ + // arr[i].question.min_choices= parseInt(2); + // arr[i].question.max_choices = parseInt(value); + // } + // else if(parseInt(value)===0&&parseInt(minchoices)>0){ + // arr[i].question.min_choices= parseInt(minchoices); + // arr[i].question.max_choices = parseInt(value); + // } + // else { + // arr[i].question.min_choices= minchoices===null?2:minchoices===undefined?2:minchoices===0?2:parseInt(minchoices); + arr[i].question.max_choices = parseInt(value); + // } } } // console.log(2119); @@ -2301,6 +2445,7 @@ class PollNewQuestbank extends Component { this.setState({ adddom: arr }) + // console.log(this.state.adddom); } //提交题目//没有就创建新的题库,新建问newz题和保存题目不一样不能同时保存 这里只是新建 和编辑 标题和须知 @@ -2831,7 +2976,7 @@ class PollNewQuestbank extends Component { {item.question.is_necessary === 1 ? "(必答)" : item.question.question_type === 2 ? "(选答)" : "(选答)"} {(item.question.min_choices === undefined && item.question.max_choices === undefined ? "" : item.question.min_choices === null && item.question.max_choices === null ? "" : item.question.min_choices === 0 && item.question.max_choices === 0 ? "" : "可选" + item.question.min_choices + "-" + item.question.max_choices + "项")} + className="font-16 mt10 ml10">{(item.question.min_choices === undefined && item.question.max_choices === undefined ? "不限制" : item.question.min_choices === null && item.question.max_choices === null ? "不限制" : item.question.min_choices === 0 && item.question.max_choices === 0 ? "": item.question.min_choices === "null" && item.question.max_choices === "null" ? "不限制" : item.question.min_choices === item.question.max_choices && item.question.max_choices === item.question.min_choices ? "可选"+(item.question.max_choices)+"项" : "可选" +(item.question.min_choices===undefined||item.question.min_choices===null||item.question.min_choices===""||item.question.min_choices==="null"?2:item.question.min_choices) + "-" + (item.question.max_choices===undefined||item.question.max_choices===null||item.question.max_choices===""||item.question.max_choices==="null"?item.question.answers.length:item.question.max_choices) + "项")} { polls_status === undefined || polls_status === 1 ? @@ -3088,7 +3233,7 @@ class PollNewQuestbank extends Component { 可选
- {/*可选最小*/} + {/*可选最小1*/} ~ - {/*可选最大*/} + {/*可选最大1*/} this.HandleGradationGroupChangee(value, indexo, itemo.question.max_choices, itemo.question.answers.length)} - value={itemo.question.min_choices === 0 || itemo.question.min_choices === "0" ? "--" : itemo.question.min_choices === null ? "--" : itemo.question.min_choices === undefined ? "--" : itemo.question.min_choices} - + value={itemo.question.min_choices === null || itemo.question.min_choices === undefined ||itemo.question.min_choices === "null"|| itemo.question.min_choices === 0 || itemo.question.min_choices === "0"?"0": itemo.question.min_choices} > {itemo.question.answers === undefined ? "" : itemo.question.answers.map((itemt, indext) => { @@ -3429,10 +3572,10 @@ class PollNewQuestbank extends Component { ~ - {/*可选最大*/} + {/*可选最大2*/} this.HandleGradationGroupChangee(value, indexo, itemo.question.max_choices, itemo.question.answers.length)} - value={itemo.question.min_choices === 0 || itemo.question.min_choices === "0" ? "--" : itemo.question.min_choices === null ? "--" : itemo.question.min_choices === undefined ? "--" : itemo.question.min_choices} - + value={itemo.question.min_choices === null || itemo.question.min_choices === undefined ||itemo.question.min_choices === "null"|| itemo.question.min_choices === 0 || itemo.question.min_choices === "0"?"0": itemo.question.min_choices} > {itemo.question.answers === undefined ? "" : itemo.question.answers.map((itemt, indext) => { @@ -3749,10 +3891,10 @@ class PollNewQuestbank extends Component { ~ - {/*可选最大*/} + {/*可选最大3*/}