From f944c248eaa6d2ddf1fe443ad28b335ade688074 Mon Sep 17 00:00:00 2001 From: ARLakhin Date: Thu, 26 Mar 2026 02:06:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=204=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=B0=D0=B6=D0=B4=D0=BE=D0=B9=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/main.scss | 22 ++++++++++++++++- app/controllers/organisations_controller.rb | 23 +++++++++++++----- app/javascript/application.js | 1 + app/javascript/tabs_select.js | 18 ++++++++++++++ app/views/organisations/show.html.slim | 24 +++++++++---------- .../templates/_type_doc.html.slim | 16 +++++++++++++ config/importmap.rb | 3 ++- 7 files changed, 87 insertions(+), 20 deletions(-) create mode 100644 app/javascript/tabs_select.js create mode 100644 app/views/organisations/templates/_type_doc.html.slim diff --git a/app/assets/stylesheets/main.scss b/app/assets/stylesheets/main.scss index 31d0b35..0a79815 100644 --- a/app/assets/stylesheets/main.scss +++ b/app/assets/stylesheets/main.scss @@ -77,4 +77,24 @@ a.link:hover { .information-table td, th { padding: 5px; border: 3px solid black; -} \ No newline at end of file +} + +.type_doc_header#tabs { + width: 75%; + margin: 0 auto; +} + +.type__doc__list__type__container { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(2, 1fr); + place-items: center; + gap: 15px; + a.link { + font-size: 1.35rem; + } +} + +a.link:has(.active__button) { + background-color: gray; +} diff --git a/app/controllers/organisations_controller.rb b/app/controllers/organisations_controller.rb index ceea568..6837851 100644 --- a/app/controllers/organisations_controller.rb +++ b/app/controllers/organisations_controller.rb @@ -6,18 +6,27 @@ class OrganisationsController < ApplicationController hash[org.id] = { "ИНН" => org.inn, "Полное наименование юридического лица" => org.full_name, - "КПП" => org.kpp, - "Код по ОКПО" => org.okpo, - "Форма собственности (по ОКФС)" => org.okfs, - "Организационно-правовая форма (по ОКОПФ)" => org.okopf, - "Вид экономической деятельности по ОКВЭД 2" => org.okved2, - "Местонахождение (адрес)" => org.address + # "КПП" => org.kpp, + # "Код по ОКПО" => org.okpo, + # "Форма собственности (по ОКФС)" => org.okfs, + # "Организационно-правовая форма (по ОКОПФ)" => org.okopf, + # "Вид экономической деятельности по ОКВЭД 2" => org.okved2, + # "Местонахождение (адрес)" => org.address } end end def show org = Organization.find(params[:id]) + @org_id = org.id + + doc_types = { + 0 => 'Бухгалтерский баланс', + 1 => 'Отчёт о финансовых результатах', + 2 => 'Отчёт об изменении капитала', + 3 => 'Отчет о движении денежных средств' + } + @type_doc = params[:type_doc].present? ? params[:type_doc].to_i : 0 @info_about_organisation = { "Сведения об организации" => { @@ -39,5 +48,7 @@ class OrganisationsController < ApplicationController ["Себестоимость продаж", -228706983, -178449438]] } + @doc_name = doc_types[@type_doc] + @current_doc_info = @info_about_organisation[@doc_name] end end \ No newline at end of file diff --git a/app/javascript/application.js b/app/javascript/application.js index 3e99234..00824c1 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -4,4 +4,5 @@ import "controllers" import "jquery" import "jquery_ujs" import "toastr" +import "tabs_select" window.toastr = toastr \ No newline at end of file diff --git a/app/javascript/tabs_select.js b/app/javascript/tabs_select.js new file mode 100644 index 0000000..e299541 --- /dev/null +++ b/app/javascript/tabs_select.js @@ -0,0 +1,18 @@ + +let tabs_select = () => { + const tabsContainer = document.getElementById("tabs") + if (!tabsContainer) { + return; + } + + const buttons = tabsContainer.getElementsByClassName("switch__button") + for (const button of buttons) { + const value = button.getAttribute("data-value"); + const id = button.getAttribute("id"); + button.classList.toggle("active__button", value === id); + } +} + + +document.addEventListener('turbo:load', tabs_select) +console.log('Hi') \ No newline at end of file diff --git a/app/views/organisations/show.html.slim b/app/views/organisations/show.html.slim index f87406f..9b6e682 100644 --- a/app/views/organisations/show.html.slim +++ b/app/views/organisations/show.html.slim @@ -6,25 +6,25 @@ = 'У данной организации пока не загружена отчетность' - else .informations-data - - @info_about_organisation.each do |organisation_name, params| - h2 - = "#{organisation_name}" - - if organisation_name == "Сведения об организации" - .information-data - - params.keys.each do |key| - .information-elem - = "#{key}: #{params[key]}" - - else - .information-table + h2 + = "Сведения об организации" + .information-data + - @info_about_organisation["Сведения об организации"].each do |key, value| + .information-elem + = "#{key}: #{value}" + = render 'organisations/templates/type_doc', target: "type_doc_#{@type_doc}", org_id: "#{@org_id}" + h2 + = "#{@doc_name}" + .information-table table thead tr - - params[0].each do |value| + - @current_doc_info[0].each do |value| th = value tbody - - params[1..-1].each do |values| + - @current_doc_info[1..-1].each do |values| tr - values.each do |value| td diff --git a/app/views/organisations/templates/_type_doc.html.slim b/app/views/organisations/templates/_type_doc.html.slim new file mode 100644 index 0000000..45389f6 --- /dev/null +++ b/app/views/organisations/templates/_type_doc.html.slim @@ -0,0 +1,16 @@ +.main__container + .type_doc_header#tabs + .type__doc__list__type__container + a.link[href="/organisations/#{org_id}?type_doc=0"] + .switch__button.text-large#type_doc_0 data-value=target + = 'Бухгалтерский баланс' + a.link[href="/organisations/#{org_id}?type_doc=1"] + .switch__button.text-large#type_doc_1 data-value=target + = 'Отчёт о финансовых результатах' + / - if not_simplified + a.link[href="/organisations/#{org_id}?type_doc=2"] + .switch__button.text-large#type_doc_2 data-value=target + = 'Отчёт об изменении капитала' + a.link[href="/organisations/#{org_id}?type_doc=3"] + .switch__button.text-large#type_doc_3 data-value=target + = 'Отчёт о движении денежных средств' \ No newline at end of file diff --git a/config/importmap.rb b/config/importmap.rb index 561e137..48eb8f2 100644 --- a/config/importmap.rb +++ b/config/importmap.rb @@ -11,4 +11,5 @@ pin "jquery", to: "jquery.min.js", preload: true pin "jquery_ujs", to: "jquery_ujs.js", preload: true pin "jquery-ui", to: "jquery-ui.js", preload: true pin "inputmask", to: "jquery.inputmask.bundle.min.js", preload: true -pin 'slimselect', to: 'slimselect.min.js', preload: true \ No newline at end of file +pin 'slimselect', to: 'slimselect.min.js', preload: true +pin "tabs_select", to: 'tabs_select.js', preload: true \ No newline at end of file