rails_crm 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -23
- data/app/controllers/crm/admin/addresses_controller.rb +57 -0
- data/app/controllers/crm/admin/agencies_controller.rb +65 -0
- data/app/controllers/crm/admin/card_purchases_controller.rb +16 -0
- data/app/controllers/crm/admin/card_templates_controller.rb +49 -0
- data/app/controllers/crm/admin/home_controller.rb +8 -0
- data/app/controllers/crm/admin/maintain_logs_controller.rb +2 -20
- data/app/controllers/crm/admin/maintain_sources_controller.rb +2 -20
- data/app/controllers/crm/admin/maintain_tags_controller.rb +3 -21
- data/app/controllers/crm/admin/maintains_controller.rb +53 -94
- data/app/controllers/crm/admin/orders_controller.rb +70 -0
- data/app/controllers/crm/admin/payments_controller.rb +11 -0
- data/app/controllers/crm/admin/wallet_logs_controller.rb +25 -0
- data/app/controllers/crm/admin/wallet_payments_controller.rb +41 -0
- data/app/controllers/crm/admin/wallet_templates_controller.rb +44 -0
- data/app/controllers/crm/admin/wallets_controller.rb +41 -0
- data/app/controllers/crm/controller/me.rb +16 -0
- data/app/controllers/crm/me/agencies_controller.rb +69 -0
- data/app/controllers/crm/me/base_controller.rb +4 -0
- data/app/controllers/crm/me/home_controller.rb +12 -0
- data/app/controllers/crm/me/maintain_sources_controller.rb +38 -0
- data/app/controllers/crm/me/maintains_controller.rb +5 -0
- data/app/controllers/crm/my/agencies_controller.rb +53 -0
- data/app/controllers/crm/panel/base_controller.rb +5 -0
- data/app/controllers/crm/panel/home_controller.rb +8 -0
- data/app/controllers/crm/panel/qrcodes_controller.rb +29 -0
- data/app/controllers/crm/panel/sources_controller.rb +23 -0
- data/app/controllers/crm/panel/tags_controller.rb +26 -0
- data/app/controllers/crm/panel/texts_controller.rb +29 -0
- data/app/imports/crm/maintain_import.rb +11 -0
- data/app/jobs/crm/order_maintain_sync_job.rb +9 -0
- data/app/models/crm/agency.rb +5 -0
- data/app/models/crm/ext/address.rb +10 -0
- data/app/models/crm/ext/agency.rb +18 -0
- data/app/models/crm/ext/agent.rb +13 -0
- data/app/models/crm/ext/client.rb +13 -0
- data/app/models/crm/ext/maintainable.rb +24 -0
- data/app/models/crm/ext/member.rb +11 -0
- data/app/models/crm/{model → ext}/organ.rb +3 -3
- data/app/models/crm/maintain.rb +1 -1
- data/app/models/crm/model/agency.rb +11 -6
- data/app/models/crm/model/maintain.rb +54 -22
- data/app/models/crm/model/maintain_log.rb +2 -1
- data/app/models/crm/model/maintain_source.rb +5 -3
- data/app/models/crm/model/maintain_tag.rb +6 -5
- data/app/models/crm/model/qrcode.rb +54 -0
- data/app/models/crm/model/source.rb +55 -0
- data/app/models/crm/model/source_contact.rb +40 -0
- data/app/models/crm/model/{maintain_tag_template.rb → tag.rb} +1 -1
- data/app/models/crm/model/text.rb +45 -0
- data/app/models/crm/qrcode.rb +5 -0
- data/app/models/crm/source.rb +18 -0
- data/app/models/crm/source_contact.rb +5 -0
- data/app/models/crm/tag.rb +5 -0
- data/app/models/crm/text.rb +5 -0
- data/app/views/admin/_crm_nav.html.erb +9 -9
- data/app/views/crm/admin/addresses/_index/_breadcrumb.html.erb +6 -0
- data/app/views/crm/admin/addresses/_index/_top_bar.html+phone.erb +9 -0
- data/app/views/crm/admin/addresses/_nav.html.erb +4 -0
- data/app/views/crm/admin/addresses/_new/_top_bar.html.erb +12 -0
- data/app/views/crm/admin/addresses/_order/_weui_dialog_ft.html.erb +4 -0
- data/app/views/crm/admin/addresses/_order_from/_weui_dialog_ft.html.erb +4 -0
- data/app/views/crm/admin/addresses/index.html+phone.erb +7 -0
- data/app/views/crm/admin/agencies/_filter_form.html.erb +9 -0
- data/app/views/crm/admin/agencies/_form.html.erb +5 -0
- data/app/views/crm/admin/agencies/_index/_index_tbody.html.erb +38 -0
- data/app/views/crm/admin/agencies/_index/_index_thead.html.erb +7 -0
- data/app/views/crm/admin/agencies/_show_table.html.erb +33 -0
- data/app/views/crm/admin/agencies/edit_crowd.html.erb +6 -0
- data/app/views/crm/admin/base/_nav.html.erb +4 -0
- data/app/views/crm/admin/card_purchases/_index/_top_bar.html+phone.erb +12 -0
- data/app/views/crm/admin/card_templates/_index/_index_table.html+phone.erb +8 -0
- data/app/views/crm/admin/card_templates/_index/_index_tbody.html+phone.erb +6 -0
- data/app/views/crm/admin/card_templates/_index/_index_tr.html+phone.erb +6 -0
- data/app/views/crm/admin/card_templates/_index/_top_bar.html+phone.erb +11 -0
- data/app/views/crm/admin/card_templates/_show/_top_bar.html+phone.erb +12 -0
- data/app/views/crm/admin/home/index.html.erb +0 -0
- data/app/views/crm/admin/maintain_logs/_filter_form.html.erb +1 -1
- data/app/views/crm/admin/maintain_logs/_form.html.erb +2 -6
- data/app/views/crm/admin/maintain_logs/{_breadcrumb.html.erb → _index/_breadcrumb.html.erb} +1 -1
- data/app/views/crm/admin/maintain_logs/{_index_tbody.html.erb → _index/_index_tbody.html.erb} +1 -1
- data/app/views/crm/admin/maintain_logs/_index/_index_thead.html.erb +13 -0
- data/app/views/crm/admin/maintain_logs/_show_table.html.erb +5 -5
- data/app/views/crm/admin/maintain_sources/_filter_form.html.erb +1 -1
- data/app/views/crm/admin/maintain_sources/_form.html.erb +0 -1
- data/app/views/crm/admin/maintain_sources/_index/_index_tbody.html.erb +2 -0
- data/app/views/crm/admin/maintain_sources/_index/_index_thead.html.erb +2 -0
- data/app/views/crm/admin/maintain_sources/_index/_index_tr.html.erb +13 -0
- data/app/views/crm/admin/maintain_sources/templates.html.erb +0 -1
- data/app/views/crm/admin/maintain_tags/_form.html.erb +1 -2
- data/app/views/crm/admin/maintain_tags/{_index_tbody.html.erb → _index/_index_tbody.html.erb} +3 -1
- data/app/views/crm/admin/maintain_tags/_index/_index_thead.html.erb +5 -0
- data/app/views/crm/admin/maintain_tags/_show_table.html.erb +6 -6
- data/app/views/crm/admin/maintain_tags/templates.html.erb +6 -6
- data/app/views/crm/admin/maintains/_actions.html.erb +36 -0
- data/app/views/crm/admin/maintains/_agent_form.html.erb +14 -0
- data/app/views/crm/admin/maintains/_base/_agent_detect.html.erb +16 -0
- data/app/views/crm/admin/maintains/_base/_agent_show_table.html.erb +30 -0
- data/app/views/crm/admin/maintains/_base/_agent_tbody.html.erb +5 -0
- data/app/views/crm/admin/maintains/_base/_agent_thead.html.erb +5 -0
- data/app/views/crm/admin/maintains/_base/_filter_table.html+phone.erb +0 -0
- data/app/views/crm/admin/maintains/_base/_filter_table.html.erb +35 -0
- data/app/views/crm/admin/maintains/_base/_tabs.html.erb +7 -0
- data/app/views/crm/admin/maintains/_client_form.html+phone.erb +15 -0
- data/app/views/crm/admin/maintains/_client_form.html.erb +11 -0
- data/app/views/crm/admin/maintains/_create_detect.html.erb +9 -21
- data/app/views/crm/admin/maintains/_edit_assign.html.erb +10 -19
- data/app/views/crm/admin/maintains/_edit_form.html.erb +4 -2
- data/app/views/crm/admin/maintains/_edit_transfer.html.erb +8 -17
- data/app/views/crm/admin/maintains/_form.html.erb +15 -33
- data/app/views/crm/admin/maintains/_index/_button.html+phone.erb +4 -0
- data/app/views/crm/admin/maintains/_index/_button.html.erb +4 -0
- data/app/views/crm/admin/maintains/_index/_filter_form.html+phone.erb +14 -0
- data/app/views/crm/admin/maintains/{_filter_form.html.erb → _index/_filter_form.html.erb} +5 -5
- data/app/views/crm/admin/maintains/_index/_index_tbody.html+phone.erb +9 -0
- data/app/views/crm/admin/maintains/_index/_index_tbody.html.erb +49 -0
- data/app/views/crm/admin/maintains/_index/_index_thead.html.erb +42 -0
- data/app/views/crm/admin/maintains/_index/_index_tr.html+phone.erb +10 -0
- data/app/views/crm/admin/maintains/_index/_index_tr.html.erb +30 -0
- data/app/views/crm/admin/maintains/_new_batch_assign.html.erb +4 -13
- data/app/views/crm/admin/maintains/_new_detect/_new_detect.html+phone.erb +10 -0
- data/app/views/crm/admin/maintains/_new_detect/_new_detect.html.erb +4 -0
- data/app/views/crm/admin/maintains/_new_form.html+phone.erb +4 -0
- data/app/views/crm/admin/maintains/_new_form.html.erb +4 -2
- data/app/views/crm/admin/maintains/_public/_filter_form.html.erb +10 -0
- data/app/views/crm/admin/maintains/_public/_index_tbody.html.erb +33 -0
- data/app/views/crm/admin/maintains/_public/_index_thead.html.erb +33 -0
- data/app/views/crm/admin/maintains/_public/_index_tr.html.erb +24 -0
- data/app/views/crm/admin/maintains/_show/_external.html.erb +19 -0
- data/app/views/crm/admin/maintains/_show/_profile.html.erb +24 -0
- data/app/views/crm/admin/maintains/_show/_show_head.html+phone.erb +16 -0
- data/app/views/crm/admin/maintains/_show_table.html.erb +4 -49
- data/app/views/crm/admin/maintains/assume.turbo_stream.erb +3 -0
- data/app/views/crm/admin/maintains/create_detect.html.erb +3 -0
- data/app/views/crm/admin/maintains/detach.turbo_stream.erb +3 -0
- data/app/views/crm/admin/maintains/edit_assign.html.erb +3 -0
- data/app/views/crm/admin/maintains/edit_transfer.html.erb +3 -0
- data/app/views/crm/admin/maintains/index.html+phone.erb +8 -0
- data/app/views/crm/admin/maintains/index.html.erb +9 -26
- data/app/views/crm/admin/maintains/new_batch_assign.html.erb +3 -0
- data/app/views/crm/admin/maintains/new_detect.html.erb +7 -0
- data/app/views/crm/admin/maintains/public.html.erb +6 -80
- data/app/views/crm/admin/orders/_actions.html+phone.erb +16 -0
- data/app/views/crm/admin/orders/_add/_top_bar.html.erb +18 -0
- data/app/views/crm/admin/orders/_base/_address.html+phone.erb +25 -0
- data/app/views/crm/admin/orders/_base/_from_address.html+phone.erb +25 -0
- data/app/views/crm/admin/{maintains/_edit_order.html.erb → orders/_edit_form.html.erb} +1 -1
- data/app/views/crm/admin/orders/_index/_breadcrumb.html.erb +6 -0
- data/app/views/crm/admin/orders/_index/_button.html+phone.erb +4 -0
- data/app/views/crm/admin/orders/_index/_button.html.erb +4 -0
- data/app/views/crm/admin/orders/_index/_index_tbody.html+phone.erb +10 -0
- data/app/views/crm/admin/orders/_index/_index_tr.html+phone.erb +10 -0
- data/app/views/crm/admin/orders/_index/_index_tr.html.erb +16 -0
- data/app/views/crm/admin/orders/_index/_top_bar.html+phone.erb +13 -0
- data/app/views/crm/admin/orders/_nav.html.erb +4 -0
- data/app/views/crm/admin/orders/_new/_address_button.html.erb +4 -0
- data/app/views/crm/admin/orders/_new/_breadcrumb.html.erb +7 -0
- data/app/views/crm/admin/orders/_new/_head.html.erb +3 -0
- data/app/views/crm/admin/orders/_new/_top_bar.html.erb +12 -0
- data/app/views/crm/admin/orders/index.html+phone.erb +7 -0
- data/app/views/crm/admin/orders/index.html.erb +7 -0
- data/app/views/crm/admin/orders/payment_types.html+phone.erb +19 -0
- data/app/views/crm/admin/orders/payment_types.html.erb +17 -0
- data/app/views/crm/admin/payments/create.turbo_stream+phone.erb +3 -0
- data/app/views/crm/admin/payments/destroy.turbo_stream+phone.erb +3 -0
- data/app/views/crm/admin/payments/order_create.turbo_stream+phone.erb +3 -0
- data/app/views/crm/admin/wallet_logs/_index/_top_bar.html+phone.erb +12 -0
- data/app/views/crm/admin/wallet_payments/_index/_top_bar.html+phone.erb +12 -0
- data/app/views/crm/admin/wallet_templates/_index/_breadcrumb.html.erb +12 -0
- data/app/views/crm/admin/wallet_templates/_index/_filter_form.html.erb +0 -0
- data/app/views/crm/admin/wallet_templates/_index/_index_table.html+phone.erb +8 -0
- data/app/views/crm/admin/wallet_templates/_index/_index_tbody.html+phone.erb +6 -0
- data/app/views/crm/admin/wallet_templates/_index/_index_tbody.html.erb +13 -0
- data/app/views/crm/admin/wallet_templates/_index/_index_thead.html.erb +2 -0
- data/app/views/crm/admin/wallet_templates/_index/_index_tr.html+phone.erb +6 -0
- data/app/views/crm/admin/wallet_templates/_index/_top_bar.html+phone.erb +11 -0
- data/app/views/crm/admin/wallet_templates/_show/_top_bar.html+phone.erb +12 -0
- data/app/views/crm/admin/{maintain_sources → wallets/_index}/_breadcrumb.html.erb +2 -1
- data/app/views/crm/admin/wallets/_index/_index_table.html.erb +12 -0
- data/app/views/crm/admin/wallets/_index/_index_tbody.html.erb +25 -0
- data/app/views/crm/admin/wallets/_index/_index_thead.html.erb +5 -0
- data/app/views/crm/admin/wallets/_index/_index_tr.html.erb +19 -0
- data/app/views/crm/admin/wallets/_index/_tab_bar_footer.html.erb +4 -0
- data/app/views/crm/admin/wallets/_index/_template_tbody.html.erb +12 -0
- data/app/views/crm/admin/wallets/_index/_template_tr.html.erb +10 -0
- data/app/views/crm/admin/wallets/_index/_top_bar.html+phone.erb +11 -0
- data/app/views/crm/admin/wallets/_index/_wallet.html.erb +21 -0
- data/app/views/crm/admin/wallets/index.html+phone.erb +3 -0
- data/app/views/crm/admin/wallets/index.html.erb +6 -0
- data/app/views/crm/me/agencies/_client_form.html.erb +9 -0
- data/app/views/crm/me/agencies/_filter.html.erb +8 -0
- data/app/views/crm/me/agencies/_form.html.erb +7 -0
- data/app/views/crm/me/agencies/_show_table.html.erb +36 -0
- data/app/views/crm/me/agencies/index.html+phone.erb +18 -0
- data/app/views/crm/me/agencies/index.html.erb +40 -0
- data/app/views/crm/me/home/_cart_item.html.erb +15 -0
- data/app/views/crm/me/home/index.html+phone.erb +38 -0
- data/app/views/crm/me/maintain_sources/_about_item.html.erb +33 -0
- data/app/views/crm/me/maintain_sources/_order.html.erb +11 -0
- data/app/views/crm/me/maintain_sources/index.html.erb +20 -0
- data/app/views/crm/me/maintain_sources/list.html.erb +13 -0
- data/app/views/crm/me/maintain_sources/source.html.erb +33 -0
- data/app/views/crm/my/agencies/_client_form.html.erb +9 -0
- data/app/views/crm/my/agencies/_edit_form.html.erb +4 -0
- data/app/views/crm/{admin/maintain_source_templates → my/agencies}/_filter_form.html.erb +1 -1
- data/app/views/crm/my/agencies/_form.html.erb +19 -0
- data/app/views/crm/my/agencies/_new_form.html.erb +4 -0
- data/app/views/crm/my/agencies/_show_table.html.erb +36 -0
- data/app/views/crm/my/agencies/index.html+phone.erb +24 -0
- data/app/views/crm/my/agencies/index.html.erb +40 -0
- data/app/views/crm/panel/base/_nav.html.erb +4 -0
- data/app/views/crm/panel/home/index.html.erb +0 -0
- data/app/views/crm/panel/qrcodes/_form.html.erb +5 -0
- data/app/views/crm/panel/qrcodes/_index/_breadcrumb.html.erb +7 -0
- data/app/views/crm/panel/qrcodes/_index/_index_tbody.html.erb +13 -0
- data/app/views/crm/panel/qrcodes/_index/_index_thead.html.erb +11 -0
- data/app/views/crm/panel/qrcodes/_show_table.html.erb +4 -0
- data/app/views/crm/panel/qrcodes/index.html.erb +3 -0
- data/app/views/crm/panel/sources/_form.html.erb +4 -0
- data/app/views/crm/{admin/maintain_tag_templates → panel/sources/_index}/_filter_form.html.erb +1 -1
- data/app/views/crm/panel/sources/_index/_index_tbody.html.erb +13 -0
- data/app/views/crm/panel/sources/_index/_index_thead.html.erb +3 -0
- data/app/views/crm/panel/sources/_index/_index_tr.html.erb +25 -0
- data/app/views/crm/panel/sources/_show/_breadcrumb.html.erb +6 -0
- data/app/views/crm/panel/sources/_show/_qrcode_button.html.erb +4 -0
- data/app/views/crm/panel/sources/_show/_qrcode_table.html.erb +18 -0
- data/app/views/crm/panel/sources/_show/_qrcode_tbody.html.erb +13 -0
- data/app/views/crm/panel/sources/_show/_qrcode_thead.html.erb +11 -0
- data/app/views/crm/panel/sources/_show/_qrcode_tr.html.erb +16 -0
- data/app/views/crm/panel/sources/_show/_show_table.html.erb +16 -0
- data/app/views/crm/panel/sources/_show/_text_button.html.erb +4 -0
- data/app/views/crm/panel/sources/_show/_text_table.html.erb +18 -0
- data/app/views/crm/panel/sources/_show/_text_tbody.html.erb +9 -0
- data/app/views/crm/panel/sources/_show/_text_thead.html.erb +9 -0
- data/app/views/crm/panel/sources/_show/_text_tr.html.erb +16 -0
- data/app/views/crm/panel/sources/index.html.erb +8 -0
- data/app/views/crm/panel/sources/show.html.erb +14 -0
- data/app/views/crm/{admin/maintain_tag_templates → panel/tags}/_form.html.erb +0 -1
- data/app/views/crm/{admin/maintain_tag_templates → panel/tags/_index}/_index_tbody.html.erb +4 -2
- data/app/views/crm/panel/tags/_index/_index_thead.html.erb +8 -0
- data/app/views/crm/panel/tags/_show_table.html.erb +20 -0
- data/app/views/crm/panel/texts/_form.html.erb +5 -0
- data/app/views/crm/panel/texts/_index/_breadcrumb.html.erb +7 -0
- data/app/views/crm/panel/texts/_index/_index_tbody.html.erb +9 -0
- data/app/views/crm/panel/texts/_index/_index_thead.html.erb +9 -0
- data/app/views/crm/panel/texts/_show_table.html.erb +4 -0
- data/app/views/crm/panel/texts/index.html.erb +3 -0
- data/app/views/panel/_crm_nav.html.erb +11 -0
- data/config/locales/en.enum.yml +6 -0
- data/config/locales/zh.attributes.yml +16 -7
- data/config/locales/zh.controller.yml +82 -5
- data/config/locales/zh.enum.yml +40 -2
- data/config/routes.rb +88 -14
- data/lib/rails_crm/engine.rb +2 -6
- metadata +254 -80
- data/app/controllers/crm/admin/maintain_source_templates_controller.rb +0 -52
- data/app/controllers/crm/admin/maintain_tag_templates_controller.rb +0 -56
- data/app/models/crm/maintain_source_template.rb +0 -5
- data/app/models/crm/maintain_tag_template.rb +0 -5
- data/app/models/crm/model/maintain_source_template.rb +0 -12
- data/app/models/crm/model/member.rb +0 -11
- data/app/models/crm/model/order.rb +0 -10
- data/app/views/crm/admin/maintain_logs/_index_thead.html.erb +0 -14
- data/app/views/crm/admin/maintain_logs/_maintain_log.json.jbuilder +0 -11
- data/app/views/crm/admin/maintain_logs/_show.json.jbuilder +0 -1
- data/app/views/crm/admin/maintain_logs/index.json.jbuilder +0 -2
- data/app/views/crm/admin/maintain_source_templates/_edit_form.html.erb +0 -4
- data/app/views/crm/admin/maintain_source_templates/_form.html.erb +0 -2
- data/app/views/crm/admin/maintain_source_templates/_index_tbody.html.erb +0 -14
- data/app/views/crm/admin/maintain_source_templates/_index_thead.html.erb +0 -2
- data/app/views/crm/admin/maintain_source_templates/_maintain_source.json.jbuilder +0 -7
- data/app/views/crm/admin/maintain_source_templates/_new_form.html.erb +0 -4
- data/app/views/crm/admin/maintain_source_templates/_show.json.jbuilder +0 -1
- data/app/views/crm/admin/maintain_source_templates/_show_table.html.erb +0 -8
- data/app/views/crm/admin/maintain_source_templates/index.json.jbuilder +0 -1
- data/app/views/crm/admin/maintain_sources/_edit_form.html.erb +0 -4
- data/app/views/crm/admin/maintain_sources/_index_tbody.html.erb +0 -12
- data/app/views/crm/admin/maintain_sources/_index_thead.html.erb +0 -3
- data/app/views/crm/admin/maintain_sources/_maintain_source.json.jbuilder +0 -6
- data/app/views/crm/admin/maintain_sources/_show.json.jbuilder +0 -1
- data/app/views/crm/admin/maintain_sources/index.json.jbuilder +0 -1
- data/app/views/crm/admin/maintain_tag_templates/_edit_form.html.erb +0 -4
- data/app/views/crm/admin/maintain_tag_templates/_index_thead.html.erb +0 -7
- data/app/views/crm/admin/maintain_tag_templates/_maintain_tag_template.json.jbuilder +0 -11
- data/app/views/crm/admin/maintain_tag_templates/_new_form.html.erb +0 -4
- data/app/views/crm/admin/maintain_tag_templates/_show.json.jbuilder +0 -1
- data/app/views/crm/admin/maintain_tag_templates/_show_table.html.erb +0 -20
- data/app/views/crm/admin/maintain_tag_templates/index.json.jbuilder +0 -1
- data/app/views/crm/admin/maintain_tags/_breadcrumb.html.erb +0 -6
- data/app/views/crm/admin/maintain_tags/_edit_form.html.erb +0 -4
- data/app/views/crm/admin/maintain_tags/_filter_form.html.erb +0 -9
- data/app/views/crm/admin/maintain_tags/_index_thead.html.erb +0 -6
- data/app/views/crm/admin/maintain_tags/_maintain_tag.json.jbuilder +0 -9
- data/app/views/crm/admin/maintain_tags/_new_form.html.erb +0 -4
- data/app/views/crm/admin/maintain_tags/_show.json.jbuilder +0 -1
- data/app/views/crm/admin/maintain_tags/index.json.jbuilder +0 -1
- data/app/views/crm/admin/maintains/_button.html.erb +0 -3
- data/app/views/crm/admin/maintains/_filter_table.html.erb +0 -54
- data/app/views/crm/admin/maintains/_index_thead.html.erb +0 -40
- data/app/views/crm/admin/maintains/_index_tr.html.erb +0 -36
- data/app/views/crm/admin/maintains/_maintain.json.jbuilder +0 -24
- data/app/views/crm/admin/maintains/_new_detect.html.erb +0 -15
- data/app/views/crm/admin/maintains/_show.json.jbuilder +0 -1
- data/app/views/crm/admin/maintains/create_detect.js.erb +0 -3
- data/app/views/crm/admin/maintains/edit_assign.js +0 -8
- data/app/views/crm/admin/maintains/edit_assign.js.erb +0 -3
- data/app/views/crm/admin/maintains/edit_order.js.erb +0 -12
- data/app/views/crm/admin/maintains/edit_transfer.js +0 -8
- data/app/views/crm/admin/maintains/edit_transfer.js.erb +0 -3
- data/app/views/crm/admin/maintains/index.json.jbuilder +0 -2
- data/app/views/crm/admin/maintains/new.json.jbuilder +0 -5
- data/app/views/crm/admin/maintains/new_batch_assign.js.erb +0 -3
- data/app/views/crm/admin/maintains/new_detect.js.erb +0 -1
- data/app/views/crm/admin/maintains/orders.html.erb +0 -54
- data/app/views/crm/admin/maintains/public.json.jbuilder +0 -2
@@ -0,0 +1,25 @@
|
|
1
|
+
module Crm
|
2
|
+
class Admin::WalletLogsController < Trade::Admin::WalletLogsController
|
3
|
+
before_action :set_maintain
|
4
|
+
before_action :set_wallet
|
5
|
+
before_action :set_wallet_log, only: [:show, :edit, :update, :destroy, :actions]
|
6
|
+
|
7
|
+
def index
|
8
|
+
@wallet_logs = @wallet.wallet_logs.order(id: :desc).page(params[:page]).per(params[:per])
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def set_maintain
|
13
|
+
@maintain = Maintain.find params[:maintain_id]
|
14
|
+
end
|
15
|
+
|
16
|
+
def set_wallet
|
17
|
+
@wallet = @maintain.wallets.find params[:wallet_id]
|
18
|
+
end
|
19
|
+
|
20
|
+
def set_wallet_log
|
21
|
+
@wallet_log = @wallet.wallet_logs.find params[:id]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Crm
|
2
|
+
class Admin::WalletPaymentsController < Trade::Admin::WalletPaymentsController
|
3
|
+
before_action :set_maintain
|
4
|
+
before_action :set_wallet
|
5
|
+
before_action :set_wallet_payment, only: [:show, :edit, :update, :destroy, :actions]
|
6
|
+
before_action :set_new_wallet_payment, only: [:new, :create]
|
7
|
+
|
8
|
+
def index
|
9
|
+
q_params = {}
|
10
|
+
|
11
|
+
@wallet_payments = @wallet.wallet_payments.default_where(q_params).page(params[:page])
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def set_maintain
|
16
|
+
@maintain = Maintain.find params[:maintain_id]
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_wallet
|
20
|
+
@wallet = @maintain.wallets.find params[:wallet_id]
|
21
|
+
end
|
22
|
+
|
23
|
+
def set_new_wallet_payment
|
24
|
+
@wallet_payment = @wallet.wallet_payments.build(wallet_payment_params)
|
25
|
+
@wallet_payment.notified_at ||= Time.current
|
26
|
+
end
|
27
|
+
|
28
|
+
def set_wallet_payment
|
29
|
+
@wallet_payment = Trade::WalletPayment.find(params[:id])
|
30
|
+
end
|
31
|
+
|
32
|
+
def wallet_payment_params
|
33
|
+
params.fetch(:wallet_payment, {}).permit(
|
34
|
+
:total_amount,
|
35
|
+
:notified_at,
|
36
|
+
:comment
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Crm
|
2
|
+
class Admin::WalletTemplatesController < Trade::Admin::WalletTemplatesController
|
3
|
+
before_action :set_maintain
|
4
|
+
before_action :set_wallet_template, only: [:show, :edit, :update, :destroy, :actions]
|
5
|
+
before_action :set_new_order, only: [:show]
|
6
|
+
before_action :set_wallet_template_ids, only: [:index]
|
7
|
+
|
8
|
+
def index
|
9
|
+
q_params = {}
|
10
|
+
q_params.merge! params.permit(:tel)
|
11
|
+
|
12
|
+
@wallet_templates = Trade::WalletTemplate.default_where(q_params).page(params[:page])
|
13
|
+
end
|
14
|
+
|
15
|
+
def show
|
16
|
+
@wallet = @maintain.wallets.find_or_initialize_by(wallet_template_id: @wallet_template.id)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
def set_maintain
|
21
|
+
@maintain = Maintain.find params[:maintain_id]
|
22
|
+
end
|
23
|
+
|
24
|
+
def set_new_order
|
25
|
+
@order = @maintain.orders.build
|
26
|
+
@order.items.build
|
27
|
+
end
|
28
|
+
|
29
|
+
def set_wallet_template_ids
|
30
|
+
@wallet_template_ids = @maintain.wallets.pluck(:wallet_template_id)
|
31
|
+
end
|
32
|
+
|
33
|
+
def _prefixes
|
34
|
+
super do |pres|
|
35
|
+
if ['show'].include?(params[:action])
|
36
|
+
pres + ['trade/my/wallet_templates', 'trade/my/base']
|
37
|
+
else
|
38
|
+
pres
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Crm
|
2
|
+
class Admin::WalletsController < Trade::Admin::WalletsController
|
3
|
+
before_action :set_maintain
|
4
|
+
before_action :set_wallet, only: [:show, :edit, :update, :destroy, :actions]
|
5
|
+
before_action :set_new_wallet, only: [:index, :create]
|
6
|
+
|
7
|
+
def index
|
8
|
+
q_params = {}
|
9
|
+
|
10
|
+
@wallets = @maintain.wallets.default_where(q_params).order(wallet_template_id: :desc)
|
11
|
+
@wallet_templates = Trade::WalletTemplate.default_where(default_params).where.not(id: @wallets.pluck(:wallet_template_id)).order(id: :asc)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def set_maintain
|
16
|
+
@maintain = Maintain.find params[:maintain_id]
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_wallet
|
20
|
+
@wallet = @maintain.wallets.find(params[:id])
|
21
|
+
end
|
22
|
+
|
23
|
+
def set_new_wallet
|
24
|
+
@wallet = @maintain.wallets.build(wallet_params)
|
25
|
+
end
|
26
|
+
|
27
|
+
def wallet_params
|
28
|
+
params.fetch(:wallet, {}).permit(
|
29
|
+
:account_bank,
|
30
|
+
:account_name,
|
31
|
+
:account_num,
|
32
|
+
:wallet_template_id
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.local_prefixes
|
37
|
+
[controller_path, 'crm/admin/base']
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Crm
|
2
|
+
class Me::AgenciesController < Me::BaseController
|
3
|
+
before_action :set_agency, only: [:show, :edit, :update, :destroy]
|
4
|
+
|
5
|
+
def index
|
6
|
+
@agencies = current_agent.agencies.includes(:client).page(params[:page])
|
7
|
+
end
|
8
|
+
|
9
|
+
def new
|
10
|
+
@agency = current_agent.agencies.build
|
11
|
+
end
|
12
|
+
|
13
|
+
def create
|
14
|
+
@agency = current_agent.agencies.build(agency_params)
|
15
|
+
|
16
|
+
unless @agency.save
|
17
|
+
render :new, locals: { model: @agency }, status: :unprocessable_entity
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def show
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit
|
25
|
+
end
|
26
|
+
|
27
|
+
def update
|
28
|
+
@agency.assign_attributes(agency_params)
|
29
|
+
|
30
|
+
unless @agency.save
|
31
|
+
render :edit, locals: { model: @agency }, status: :unprocessable_entity
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def destroy
|
36
|
+
@agency.destroy
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
def set_agency
|
41
|
+
@agency = Agency.find(params[:id])
|
42
|
+
end
|
43
|
+
|
44
|
+
def client_params
|
45
|
+
params.fetch(:profile, {}).permit(
|
46
|
+
:real_name,
|
47
|
+
:nick_name,
|
48
|
+
:birthday_type,
|
49
|
+
:birthday,
|
50
|
+
:gender,
|
51
|
+
:note,
|
52
|
+
:avatar,
|
53
|
+
agencies_attributes: {}
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
def agency_params
|
58
|
+
params.fetch(:agency, {}).permit(
|
59
|
+
:relation,
|
60
|
+
:client_type,
|
61
|
+
:client_id,
|
62
|
+
:commission_ratio,
|
63
|
+
:note,
|
64
|
+
client_attributes: {}
|
65
|
+
)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Crm
|
2
|
+
class Me::HomeController < Me::BaseController
|
3
|
+
|
4
|
+
def index
|
5
|
+
@wechat_user = current_user.oauth_users.find_by(appid: current_wechat_app&.appid)
|
6
|
+
unless @wechat_user
|
7
|
+
@url = current_wechat_app.oauth2_url(state: current_account.identity, action: 'bind')
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Crm
|
2
|
+
class Me::MaintainSourcesController < Me::BaseController
|
3
|
+
before_action :set_sources, only: [:index]
|
4
|
+
before_action :set_source, only: [:list, :source]
|
5
|
+
|
6
|
+
def index
|
7
|
+
q_params = {}
|
8
|
+
q_params.merge! default_params
|
9
|
+
|
10
|
+
@maintain_sources = MaintainSource.default_where(q_params)
|
11
|
+
end
|
12
|
+
|
13
|
+
def list
|
14
|
+
@sources = @source.children
|
15
|
+
end
|
16
|
+
|
17
|
+
def source
|
18
|
+
if current_corp_user
|
19
|
+
@contact = current_corp_user.contacts.find_or_initialize_by(state: @source.name)
|
20
|
+
@contact.save
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def share
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
def set_sources
|
30
|
+
@sources = Source.roots
|
31
|
+
end
|
32
|
+
|
33
|
+
def set_source
|
34
|
+
@source = Source.find params[:source_id]
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Crm
|
2
|
+
class My::AgenciesController < My::BaseController
|
3
|
+
before_action :set_agency, only: [:show, :edit, :update, :destroy]
|
4
|
+
|
5
|
+
def index
|
6
|
+
@agencies = current_user.agencies.includes(:client).page(params[:page])
|
7
|
+
end
|
8
|
+
|
9
|
+
def new
|
10
|
+
@agency = current_user.agencies.build
|
11
|
+
@agency.build_client
|
12
|
+
end
|
13
|
+
|
14
|
+
def create
|
15
|
+
@agency = current_user.agencies.build(agency_params)
|
16
|
+
|
17
|
+
if @agency.save
|
18
|
+
render 'create', locals: { return_to: url_for(action: 'index') }
|
19
|
+
else
|
20
|
+
render :new, locals: { model: @agency }, status: :unprocessable_entity
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def set_agency
|
26
|
+
@agency = Agency.find(params[:id])
|
27
|
+
end
|
28
|
+
|
29
|
+
def client_params
|
30
|
+
params.fetch(:client, {}).permit(
|
31
|
+
:real_name,
|
32
|
+
:nick_name,
|
33
|
+
:birthday_type,
|
34
|
+
:birthday,
|
35
|
+
:gender,
|
36
|
+
:note,
|
37
|
+
:avatar,
|
38
|
+
agencies_attributes: {}
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
def agency_params
|
43
|
+
params.fetch(:agency, {}).permit(
|
44
|
+
:relation,
|
45
|
+
:client_type,
|
46
|
+
:commission_ratio,
|
47
|
+
:note,
|
48
|
+
client_attributes: {}
|
49
|
+
)
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Crm
|
2
|
+
class Crm::Panel::QrcodesController < Crm::Panel::BaseController
|
3
|
+
before_action :set_source
|
4
|
+
before_action :set_new_qrcode, only: [:new, :create]
|
5
|
+
|
6
|
+
def index
|
7
|
+
@qrcodes = @source.qrcodes.order(id: :asc)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
def set_source
|
12
|
+
@source = Source.find params[:source_id]
|
13
|
+
end
|
14
|
+
|
15
|
+
def set_new_qrcode
|
16
|
+
@qrcode = @source.build_qrcode(qrcode_params)
|
17
|
+
end
|
18
|
+
|
19
|
+
def qrcode_params
|
20
|
+
params.fetch(:qrcode, {}).permit(
|
21
|
+
:margin_x,
|
22
|
+
:margin_y,
|
23
|
+
:align,
|
24
|
+
:fixed_width,
|
25
|
+
:picture
|
26
|
+
)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Crm
|
2
|
+
class Panel::SourcesController < Panel::BaseController
|
3
|
+
|
4
|
+
def index
|
5
|
+
q_params = {}
|
6
|
+
q_params.merge! params.permit(:name)
|
7
|
+
|
8
|
+
@sources = Source.roots.default_where(q_params).page(params[:page])
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def source_params
|
13
|
+
params.fetch(:source, {}).permit(
|
14
|
+
:name,
|
15
|
+
:price,
|
16
|
+
:picture,
|
17
|
+
:logo,
|
18
|
+
:parent_ancestors
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Crm
|
2
|
+
class Panel::TagsController < Panel::BaseController
|
3
|
+
before_action :set_tag, only: [:show, :edit, :update, :destroy]
|
4
|
+
|
5
|
+
def index
|
6
|
+
@tags = Tag.order(sequence: :asc).page(params[:page])
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
def set_tag
|
11
|
+
@tag = Tag.find(params[:id])
|
12
|
+
end
|
13
|
+
|
14
|
+
def tag_params
|
15
|
+
params.fetch(:tag, {}).permit(
|
16
|
+
:name,
|
17
|
+
:logged_type,
|
18
|
+
:entity_column,
|
19
|
+
:entity_value,
|
20
|
+
:sequence,
|
21
|
+
:color
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Crm
|
2
|
+
class Crm::Panel::TextsController < Crm::Panel::BaseController
|
3
|
+
before_action :set_source
|
4
|
+
before_action :set_new_text, only: [:new, :create]
|
5
|
+
|
6
|
+
def index
|
7
|
+
@texts = @source.texts.order(id: :asc)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
def set_source
|
12
|
+
@source = Source.find params[:source_id]
|
13
|
+
end
|
14
|
+
|
15
|
+
def set_new_text
|
16
|
+
@text = @source.texts.build(text_params)
|
17
|
+
end
|
18
|
+
|
19
|
+
def text_params
|
20
|
+
params.fetch(:text, {}).permit(
|
21
|
+
:note,
|
22
|
+
:margin_x,
|
23
|
+
:margin_y,
|
24
|
+
:font,
|
25
|
+
:align
|
26
|
+
)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Crm
|
2
|
+
module Ext::Agency
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
has_one :maintain, class_name: 'Crm::Maintain', inverse_of: :agency
|
7
|
+
has_many :maintains, class_name: 'Crm::Maintain'
|
8
|
+
|
9
|
+
before_validation :sync_from_maintain, if: -> { self.maintain.present? }
|
10
|
+
end
|
11
|
+
|
12
|
+
def sync_from_maintain
|
13
|
+
self.agent = maintain.agent
|
14
|
+
self.client = maintain.client
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Crm
|
2
|
+
module Ext::Agent
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
has_many :agencies, class_name: 'Crm::Agency', as: :agent, dependent: :delete_all
|
7
|
+
has_many :clients, through: :agencies
|
8
|
+
|
9
|
+
has_many :agent_maintains, class_name: 'Crm::Maintain', as: :agent, inverse_of: :agent
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Crm
|
2
|
+
module Ext::Client
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
has_many :agencies, class_name: 'Crm::Agency', as: :client, inverse_of: :client, dependent: :delete_all
|
7
|
+
has_many :agents, through: :agencies
|
8
|
+
|
9
|
+
has_many :client_maintains, class_name: 'Crm::Maintain', as: :client, inverse_of: :client
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Crm
|
2
|
+
module Ext::Maintainable
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
belongs_to :maintain, class_name: 'Crm::Maintain', counter_cache: true, optional: true
|
7
|
+
|
8
|
+
before_save :sync_user_from_maintain, if: -> { maintain_id.present? && maintain_id_changed? }
|
9
|
+
after_create :change_maintain_state, if: -> { maintain_id.present? && saved_change_to_maintain_id? }
|
10
|
+
end
|
11
|
+
|
12
|
+
def sync_user_from_maintain
|
13
|
+
return unless maintain
|
14
|
+
self.user_id = maintain.client_user_id
|
15
|
+
self.member_id = maintain.client_member_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def change_maintain_state
|
19
|
+
return unless maintain
|
20
|
+
maintain.update state: 'ordered'
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module Crm
|
2
|
-
module
|
2
|
+
module Ext::Organ
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
included do
|
6
|
-
has_many :maintains, dependent: :nullify
|
7
|
-
has_many :
|
6
|
+
has_many :maintains, class_name: 'Crm::Maintain', dependent: :nullify
|
7
|
+
has_many :clients, through: :maintains
|
8
8
|
end
|
9
9
|
|
10
10
|
def maintains_count
|
data/app/models/crm/maintain.rb
CHANGED
@@ -3,15 +3,20 @@ module Crm
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
included do
|
6
|
-
|
7
|
-
|
6
|
+
attribute :relation, :string, default: 'unknown'
|
7
|
+
attribute :commission_ratio, :decimal, precision: 4, scale: 2, comment: '交易时抽成比例'
|
8
|
+
attribute :note, :string, comment: '备注'
|
8
9
|
|
9
|
-
|
10
|
+
belongs_to :agent, polymorphic: true
|
11
|
+
belongs_to :client, polymorphic: true
|
12
|
+
|
13
|
+
accepts_nested_attributes_for :client, reject_if: :all_blank
|
14
|
+
|
15
|
+
enum relation: options_i18n(:relation).values.map { |i| [i.to_sym, i.to_s] }.to_h
|
10
16
|
end
|
11
17
|
|
12
|
-
def
|
13
|
-
|
14
|
-
self.client = maintain.client
|
18
|
+
def name
|
19
|
+
"#{relation_i18n} #{client.name}"
|
15
20
|
end
|
16
21
|
|
17
22
|
end
|