Commit fd5b27d2 by liyijie

feat: export_headers_result,默认把参数传入

parent f4d58420
...@@ -46,17 +46,17 @@ module TalltyImportExport ...@@ -46,17 +46,17 @@ module TalltyImportExport
records.group_by { |record| record.send(@group_by)}.each do |key, group_records| records.group_by { |record| record.send(@group_by)}.each do |key, group_records|
next unless key.present? next unless key.present?
@group_key = key @group_key = key
export_workbook workbook, group_records export_workbook workbook, group_records, **options
end end
else else
records.group(@group_by).count.keys.each do |key| records.group(@group_by).count.keys.each do |key|
next unless key.present? next unless key.present?
@group_key = key @group_key = key
export_workbook workbook, records.ransack("#{@group_where}" => key).result export_workbook workbook, records.ransack("#{@group_where}" => key).result, **options
end end
end end
else else
export_workbook workbook, records export_workbook workbook, records, **options
end end
file_path = File.join(Rails.root, 'public', 'export') file_path = File.join(Rails.root, 'public', 'export')
...@@ -68,14 +68,14 @@ module TalltyImportExport ...@@ -68,14 +68,14 @@ module TalltyImportExport
end end
end end
def export_workbook workbook, association_records def export_workbook workbook, association_records, **options
# excel导出样式 # excel导出样式
alignment = { vertical: :center, horizontal: :center } alignment = { vertical: :center, horizontal: :center }
border = { color: '969696', style: :thin } border = { color: '969696', style: :thin }
title1 = workbook.styles.add_style(alignment: alignment, border: border, sz: 12, b: true) title1 = workbook.styles.add_style(alignment: alignment, border: border, sz: 12, b: true)
title2 = workbook.styles.add_style(alignment: alignment, border: border, bg_color: "2a5caa", sz: 12, fg_color: "fffffb") title2 = workbook.styles.add_style(alignment: alignment, border: border, bg_color: "2a5caa", sz: 12, fg_color: "fffffb")
title3 = workbook.styles.add_style(alignment: alignment.merge(wrap_text: true), border: border, sz: 10) title3 = workbook.styles.add_style(alignment: alignment.merge(wrap_text: true), border: border, sz: 10)
headers = export_headers_result headers = export_headers_result **options
_sheet_name = respond_to?(:sheet_name) ? self.sheet_name : nil _sheet_name = respond_to?(:sheet_name) ? self.sheet_name : nil
...@@ -159,17 +159,17 @@ module TalltyImportExport ...@@ -159,17 +159,17 @@ module TalltyImportExport
records records
end end
def export_headers_result def export_headers_result **options
if @headers.present? && @group_key.blank? if @headers.present? && @group_key.blank?
headers_hash = @headers.to_h { |header| [header.with_indifferent_access[:key], header] }.with_indifferent_access headers_hash = @headers.to_h { |header| [header.with_indifferent_access[:key], header] }.with_indifferent_access
export_headers.select do |_header| export_headers(**options).select do |_header|
_header.with_indifferent_access[:key].to_s.in?(headers_hash.keys) _header.with_indifferent_access[:key].to_s.in?(headers_hash.keys)
end.map do |_header| end.map do |_header|
_header = _header.with_indifferent_access _header = _header.with_indifferent_access
_header.merge(headers_hash[_header[:key]].delete_if { |k, v| v.blank? }) _header.merge(headers_hash[_header[:key]].delete_if { |k, v| v.blank? })
end end
else else
@headers = export_headers @headers = export_headers(**options)
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment