From 5074c32802973ef907ef12277fb0dcf687d285ca Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 2 Jul 2026 11:16:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E7=AD=9B?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/users_controller.rb | 3 +- app/queries/admins/user_query.rb | 15 + app/views/admins/users/index.html.erb | 26 +- .../users/shared/_export_modal.html.erb | 41 + ...fest-99c04237d445db10ee241208896d206f.json | 2 +- ...2d8bd2422398574e60624dbaeaae97a506da5d5.js | 140468 +++++++++++++++ ...bd2422398574e60624dbaeaae97a506da5d5.js.gz | Bin 0 -> 993915 bytes ...c076d63be1105549c174f335c1e0f466fa9f8c1.js | 40473 +++++ ...6d63be1105549c174f335c1e0f466fa9f8c1.js.gz | Bin 0 -> 286795 bytes ...bb5d832fdce2fb05edaf1b818c6e76fdf5ba77c.js | 113378 ++++++++++++ ...d832fdce2fb05edaf1b818c6e76fdf5ba77c.js.gz | Bin 0 -> 749275 bytes ...864784df9a34dd971576db8231b63f618f9786e.js | 135827 ++++++++++++++ 12 files changed, 430226 insertions(+), 7 deletions(-) create mode 100644 app/views/admins/users/shared/_export_modal.html.erb create mode 100644 public/assets/admin-859013594935b52dc8c3719352d8bd2422398574e60624dbaeaae97a506da5d5.js create mode 100644 public/assets/admin-859013594935b52dc8c3719352d8bd2422398574e60624dbaeaae97a506da5d5.js.gz create mode 100644 public/assets/application-1852bb2a261b8a9ce0d4a83dcc076d63be1105549c174f335c1e0f466fa9f8c1.js create mode 100644 public/assets/application-1852bb2a261b8a9ce0d4a83dcc076d63be1105549c174f335c1e0f466fa9f8c1.js.gz create mode 100644 public/assets/college-f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c.js create mode 100644 public/assets/college-f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c.js.gz create mode 100644 public/assets/cooperative-2efdf753e39599e78fb02527e864784df9a34dd971576db8231b63f618f9786e.js diff --git a/app/controllers/admins/users_controller.rb b/app/controllers/admins/users_controller.rb index b5c5a1929..2839de169 100644 --- a/app/controllers/admins/users_controller.rb +++ b/app/controllers/admins/users_controller.rb @@ -28,7 +28,8 @@ class Admins::UsersController < Admins::BaseController def export params[:sort_by] = params[:sort_by].presence || 'created_on' params[:sort_direction] = params[:sort_direction].presence || 'desc' - + params[:time_type] = params[:time_type].presence || 'created_on' + users = Admins::UserQuery.call(params) @users = users.includes(:user_extension, projects: :members) filename = ["用户列表", Time.zone.now.strftime('%Y%m%d%H%M%S')].join('-') << '.xlsx' diff --git a/app/queries/admins/user_query.rb b/app/queries/admins/user_query.rb index 038ae1857..c4ba8e2dd 100644 --- a/app/queries/admins/user_query.rb +++ b/app/queries/admins/user_query.rb @@ -73,6 +73,21 @@ class Admins::UserQuery < ApplicationQuery school_name = params[:school_name].to_s.strip.presence users = users.joins(user_extension: :school).where('schools.name LIKE ?', "%#{school_name}%") if school_name + # 时间范围搜索 + if params[:start_time].present? && params[:end_time].present? + time_type = params[:time_type].presence || 'created_on' + time_type = 'created_on' unless %w[created_on last_login_on].include?(time_type) + users = users.where("#{time_type} >= ? AND #{time_type} <= ?", params[:start_time], params[:end_time]) + elsif params[:start_time].present? + time_type = params[:time_type].presence || 'created_on' + time_type = 'created_on' unless %w[created_on last_login_on].include?(time_type) + users = users.where("#{time_type} >= ?", params[:start_time]) + elsif params[:end_time].present? + time_type = params[:time_type].presence || 'created_on' + time_type = 'created_on' unless %w[created_on last_login_on].include?(time_type) + users = users.where("#{time_type} <= ?", params[:end_time]) + end + custom_sort(users, params[:sort_by], params[:sort_direction]) end end \ No newline at end of file diff --git a/app/views/admins/users/index.html.erb b/app/views/admins/users/index.html.erb index cc568c9ba..853849c79 100644 --- a/app/views/admins/users/index.html.erb +++ b/app/views/admins/users/index.html.erb @@ -45,7 +45,7 @@ <%= check_box_tag("bank_certification", true, false, id: "user_bank_certification", style: 'margin-left: 2px;') %> <%= submit_tag('搜索', class: 'btn btn-primary mr-3', style: 'margin-left:50px;', 'data-disable-with': '搜索中...') %> - 导出 + <%= javascript_void_link '导出', class:'btn btn-outline-primary export-action', style: 'margin-left:20px;', id: 'users-export', data: { toggle: 'modal', target: '.admin-export-user-modal'}, "data-disable_with":'导出中...' %> <% end %> <% if current_user.admin? %> @@ -61,13 +61,29 @@ <%= render partial: 'admins/users/shared/reward_grade_modal' %> <%= render partial: 'admins/users/shared/import_user_modal' %> +<%= render partial: 'admins/users/shared/export_modal' %>