rails_ship 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/README.md +32 -0
- data/Rakefile +32 -0
- data/app/controllers/ship/admin/addresses_controller.rb +48 -0
- data/app/controllers/ship/admin/base_controller.rb +5 -0
- data/app/controllers/ship/admin/home_controller.rb +8 -0
- data/app/controllers/ship/admin/packages_controller.rb +43 -0
- data/app/controllers/ship/admin/trade_items_controller.rb +72 -0
- data/app/controllers/ship/driver/base_controller.rb +9 -0
- data/app/controllers/ship/driver/favorites_controller.rb +39 -0
- data/app/controllers/ship/my/addresses_controller.rb +58 -0
- data/app/controllers/ship/my/base_controller.rb +5 -0
- data/app/controllers/ship/my/cars_controller.rb +54 -0
- data/app/controllers/ship/my/drivers_controller.rb +38 -0
- data/app/controllers/ship/my/favorites_controller.rb +40 -0
- data/app/controllers/ship/my/lines_controller.rb +71 -0
- data/app/controllers/ship/my/locations_controller.rb +60 -0
- data/app/controllers/ship/my/packages_controller.rb +53 -0
- data/app/controllers/ship/my/principal_addresses_controller.rb +26 -0
- data/app/controllers/ship/panel/base_controller.rb +5 -0
- data/app/controllers/ship/panel/lines_controller.rb +53 -0
- data/app/controllers/ship/panel/similars_controller.rb +61 -0
- data/app/jobs/ship/car_ocr_job.rb +11 -0
- data/app/jobs/ship/driver_ocr_job.rb +11 -0
- data/app/jobs/ship/location_geo_job.rb +10 -0
- data/app/models/ship/address.rb +7 -0
- data/app/models/ship/car.rb +5 -0
- data/app/models/ship/driver.rb +5 -0
- data/app/models/ship/ext/order.rb +7 -0
- data/app/models/ship/ext/trade_item.rb +11 -0
- data/app/models/ship/ext/user.rb +15 -0
- data/app/models/ship/favorite.rb +5 -0
- data/app/models/ship/line.rb +5 -0
- data/app/models/ship/line_similar.rb +5 -0
- data/app/models/ship/location.rb +5 -0
- data/app/models/ship/model/address.rb +10 -0
- data/app/models/ship/model/car.rb +34 -0
- data/app/models/ship/model/driver.rb +45 -0
- data/app/models/ship/model/favorite.rb +14 -0
- data/app/models/ship/model/line.rb +28 -0
- data/app/models/ship/model/line_similar.rb +16 -0
- data/app/models/ship/model/location.rb +53 -0
- data/app/models/ship/model/package.rb +28 -0
- data/app/models/ship/model/packaged.rb +29 -0
- data/app/models/ship/model/shipment.rb +22 -0
- data/app/models/ship/model/shipping.rb +9 -0
- data/app/models/ship/package.rb +6 -0
- data/app/models/ship/packaged.rb +5 -0
- data/app/models/ship/shipment.rb +5 -0
- data/app/models/ship.rb +11 -0
- data/app/views/admin/_ship_nav.html.erb +11 -0
- data/app/views/panel/_ship_nav.html.erb +10 -0
- data/app/views/ship/admin/addresses/_address.html.erb +24 -0
- data/app/views/ship/admin/addresses/_edit_form.html.erb +3 -0
- data/app/views/ship/admin/addresses/_form.html.erb +9 -0
- data/app/views/ship/admin/addresses/index.html.erb +36 -0
- data/app/views/ship/admin/base/_nav.html.erb +3 -0
- data/app/views/ship/admin/home/index.html.erb +0 -0
- data/app/views/ship/admin/packages/_button.html.erb +0 -0
- data/app/views/ship/admin/packages/_edit_form.html.erb +4 -0
- data/app/views/ship/admin/packages/_filter_form.html.erb +9 -0
- data/app/views/ship/admin/packages/_form.html.erb +5 -0
- data/app/views/ship/admin/packages/_index_tbody.html.erb +8 -0
- data/app/views/ship/admin/packages/_index_thead.html.erb +5 -0
- data/app/views/ship/admin/packages/_new_form.html.erb +4 -0
- data/app/views/ship/admin/packages/_show_table.html.erb +16 -0
- data/app/views/ship/admin/packages/index.html.erb +5 -0
- data/app/views/ship/admin/rallies/_filter.html.erb +7 -0
- data/app/views/ship/admin/rallies/_form.html+phone.erb +17 -0
- data/app/views/ship/admin/rallies/_show_table.html+phone.erb +24 -0
- data/app/views/ship/admin/rallies/_show_table.html.erb +12 -0
- data/app/views/ship/admin/rallies/index.html+phone.erb +26 -0
- data/app/views/ship/admin/rallies/show.html.erb +26 -0
- data/app/views/ship/admin/trade_items/_filter.html.erb +9 -0
- data/app/views/ship/admin/trade_items/_form.html.erb +7 -0
- data/app/views/ship/admin/trade_items/_show_table.html.erb +24 -0
- data/app/views/ship/admin/trade_items/index.html.erb +51 -0
- data/app/views/ship/driver/favorites/_button.html+phone.erb +4 -0
- data/app/views/ship/driver/favorites/_edit_form.html.erb +4 -0
- data/app/views/ship/driver/favorites/_filter_form.html+phone.erb +14 -0
- data/app/views/ship/driver/favorites/_filter_form.html.erb +9 -0
- data/app/views/ship/driver/favorites/_form.html.erb +3 -0
- data/app/views/ship/driver/favorites/_index_tbody.html.erb +6 -0
- data/app/views/ship/driver/favorites/_index_thead.html.erb +3 -0
- data/app/views/ship/driver/favorites/_index_tr.html.erb +4 -0
- data/app/views/ship/driver/favorites/_new_form.html.erb +4 -0
- data/app/views/ship/driver/favorites/_show_table.html.erb +8 -0
- data/app/views/ship/driver/favorites/index.html.erb +5 -0
- data/app/views/ship/my/addresses/_edit_form.html.erb +21 -0
- data/app/views/ship/my/addresses/_form.html.erb +23 -0
- data/app/views/ship/my/addresses/index.html.erb +44 -0
- data/app/views/ship/my/cars/_edit_form.html.erb +6 -0
- data/app/views/ship/my/cars/_filter_form.html.erb +9 -0
- data/app/views/ship/my/cars/_index_tbody.html.erb +3 -0
- data/app/views/ship/my/cars/_index_thead.html.erb +4 -0
- data/app/views/ship/my/cars/_new_form.html.erb +4 -0
- data/app/views/ship/my/cars/_show_table.html.erb +16 -0
- data/app/views/ship/my/cars/create.turbo_stream.erb +1 -0
- data/app/views/ship/my/cars/index.html+phone.erb +19 -0
- data/app/views/ship/my/cars/index.html.erb +5 -0
- data/app/views/ship/my/cars/new.html.erb +25 -0
- data/app/views/ship/my/drivers/_edit_form.html.erb +6 -0
- data/app/views/ship/my/drivers/_form.html.erb +4 -0
- data/app/views/ship/my/drivers/_index_tbody.html.erb +3 -0
- data/app/views/ship/my/drivers/_index_thead.html.erb +4 -0
- data/app/views/ship/my/drivers/_new_form.html.erb +4 -0
- data/app/views/ship/my/drivers/_show_table.html.erb +12 -0
- data/app/views/ship/my/drivers/_uploader.html.erb +22 -0
- data/app/views/ship/my/drivers/edit.html.erb +20 -0
- data/app/views/ship/my/drivers/show.html.erb +33 -0
- data/app/views/ship/my/favorites/_button.html+phone.erb +4 -0
- data/app/views/ship/my/favorites/_edit_form.html.erb +4 -0
- data/app/views/ship/my/favorites/_filter_form.html+phone.erb +14 -0
- data/app/views/ship/my/favorites/_filter_form.html.erb +9 -0
- data/app/views/ship/my/favorites/_form.html.erb +3 -0
- data/app/views/ship/my/favorites/_index_tbody.html.erb +6 -0
- data/app/views/ship/my/favorites/_index_thead.html.erb +3 -0
- data/app/views/ship/my/favorites/_new_form.html.erb +4 -0
- data/app/views/ship/my/favorites/_show_table.html.erb +8 -0
- data/app/views/ship/my/favorites/index.html.erb +5 -0
- data/app/views/ship/my/lines/_edit_form.html.erb +4 -0
- data/app/views/ship/my/lines/_filter_form.html.erb +1 -0
- data/app/views/ship/my/lines/_form.html.erb +3 -0
- data/app/views/ship/my/lines/_index_tbody.html.erb +6 -0
- data/app/views/ship/my/lines/_index_tr.html.erb +4 -0
- data/app/views/ship/my/lines/_item_field.html.erb +8 -0
- data/app/views/ship/my/lines/_item_location.html.erb +13 -0
- data/app/views/ship/my/lines/_new_form.html.erb +15 -0
- data/app/views/ship/my/lines/_select/_tab_bar.html.erb +10 -0
- data/app/views/ship/my/lines/_select.html.erb +10 -0
- data/app/views/ship/my/lines/_show/_index_tbody.html.erb +6 -0
- data/app/views/ship/my/lines/_show/_index_tr.html+phone.erb +6 -0
- data/app/views/ship/my/lines/_show_table.html.erb +9 -0
- data/app/views/ship/my/lines/add.turbo_stream.erb +1 -0
- data/app/views/ship/my/lines/index.html.erb +5 -0
- data/app/views/ship/my/lines/new.html.erb +1 -0
- data/app/views/ship/my/lines/requirement.html.erb +5 -0
- data/app/views/ship/my/lines/select.turbo_stream.erb +1 -0
- data/app/views/ship/my/lines/show.html+phone.erb +30 -0
- data/app/views/ship/my/locations/_edit_form.html.erb +4 -0
- data/app/views/ship/my/locations/_filter_form.html.erb +9 -0
- data/app/views/ship/my/locations/_form.html.erb +6 -0
- data/app/views/ship/my/locations/_index_tbody.html.erb +5 -0
- data/app/views/ship/my/locations/_index_thead.html.erb +6 -0
- data/app/views/ship/my/locations/_new_form.html.erb +4 -0
- data/app/views/ship/my/locations/_show_table.html.erb +20 -0
- data/app/views/ship/my/locations/index.html.erb +5 -0
- data/app/views/ship/my/packages/index.html.erb +31 -0
- data/app/views/ship/my/principal_addresses/index.html+phone.erb +32 -0
- data/app/views/ship/my/principal_addresses/plans.html+phone.erb +23 -0
- data/app/views/ship/my/principal_addresses/show.html+phone.erb +27 -0
- data/app/views/ship/panel/base/_nav.html.erb +3 -0
- data/app/views/ship/panel/lines/_edit_form.html.erb +4 -0
- data/app/views/ship/panel/lines/_filter_form.html.erb +9 -0
- data/app/views/ship/panel/lines/_form.html.erb +4 -0
- data/app/views/ship/panel/lines/_index_tbody.html.erb +4 -0
- data/app/views/ship/panel/lines/_index_thead.html.erb +5 -0
- data/app/views/ship/panel/lines/_index_tr.html.erb +19 -0
- data/app/views/ship/panel/lines/_new_form.html.erb +4 -0
- data/app/views/ship/panel/lines/_show_table.html.erb +12 -0
- data/app/views/ship/panel/lines/index.html.erb +5 -0
- data/app/views/ship/panel/similars/_breadcrumb.html.erb +7 -0
- data/app/views/ship/panel/similars/_button.html.erb +3 -0
- data/app/views/ship/panel/similars/_edit_form.html.erb +4 -0
- data/app/views/ship/panel/similars/_filter_form.html.erb +9 -0
- data/app/views/ship/panel/similars/_form.html.erb +4 -0
- data/app/views/ship/panel/similars/_index_tbody.html.erb +3 -0
- data/app/views/ship/panel/similars/_index_thead.html.erb +4 -0
- data/app/views/ship/panel/similars/_new/_button.html.erb +0 -0
- data/app/views/ship/panel/similars/_new/_index_tr.html.erb +10 -0
- data/app/views/ship/panel/similars/_new/_index_tr_remove.html.erb +10 -0
- data/app/views/ship/panel/similars/_new_form.html.erb +4 -0
- data/app/views/ship/panel/similars/_show_table.html.erb +12 -0
- data/app/views/ship/panel/similars/create.turbo_stream.erb +3 -0
- data/app/views/ship/panel/similars/destroy.turbo_stream.erb +3 -0
- data/app/views/ship/panel/similars/index.html.erb +5 -0
- data/app/views/ship/panel/similars/new.html.erb +16 -0
- data/config/locales/zh.attributes.yml +15 -0
- data/config/locales/zh.yml +51 -0
- data/config/routes.rb +66 -0
- data/lib/rails_ship/config.rb +11 -0
- data/lib/rails_ship/engine.rb +21 -0
- data/lib/rails_ship.rb +2 -0
- metadata +240 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="weui-panel">
|
2
|
+
<div class="weui-panel__hd">
|
3
|
+
<%= t('.title') %>
|
4
|
+
</div>
|
5
|
+
<div class="weui-panel__bd">
|
6
|
+
<% @cars.each do |car| %>
|
7
|
+
<%= link_to({ action: 'show', id: car.id }, class: 'weui-media-box weui-media-box_appmsg') do %>
|
8
|
+
<div class="weui-media-box__hd">
|
9
|
+
<%= image_tag car.registration, class: 'weui-media-box__thumb' if car.registration.attached? %>
|
10
|
+
</div>
|
11
|
+
<div class="weui-media-box__bd">
|
12
|
+
<h4 class="weui-media-box__title"><%= car.number %></h4>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
16
|
+
</div>
|
17
|
+
<div class="weui-panel__ft"></div>
|
18
|
+
</div>
|
19
|
+
<%= render 'button' %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%= content_for(:wechat_js) do %>
|
2
|
+
<%= wechat_config_js debug: false, apis: ['chooseImage', 'previewImage', 'uploadImage'] -%>
|
3
|
+
<meta name="turbo-visit-control" content="reload">
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<div class="weui-uploader p-4">
|
7
|
+
<div class="weui-uploader__hd">
|
8
|
+
<h1 class="weui-uploader__title">上传行驶证</h1>
|
9
|
+
<div class="weui-uploader__info"></div>
|
10
|
+
</div>
|
11
|
+
<div class="weui-uploader__bd">
|
12
|
+
<div class="weui-uploader__input-box" data-controller="wechat">
|
13
|
+
<%= image_vite_tag 'registration.jpg', data: { wechat_target: 'preview' }, class: 'weui-uploader__preview' %>
|
14
|
+
<div class="weui-uploader__input" data-action="click->wechat#chooseImage"></div>
|
15
|
+
<%= form_with theme: nil, model: Wechat::Media.new, url: { controller: 'wechat/my/medias', action: 'create' } do |f| %>
|
16
|
+
<%= f.hidden_field :source_type, value: @car.class_name %>
|
17
|
+
<%= f.hidden_field :attachment_name, value: 'registration' %>
|
18
|
+
<%= f.hidden_field :media_id, data: { wechat_target: 'media' } %>
|
19
|
+
<% end %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<%= turbo_stream_from 'car_new' %>
|
25
|
+
<div id="car_update"></div>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<%= form_with theme: 'weui', model: driver, url: { controller: 'ship/my/drivers', action: 'update', id: driver.id }, method: :patch, class: 'weui-form weui-form_normal pt-0' do |f| %>
|
2
|
+
<%= render 'error_messages', target: f.object %>
|
3
|
+
<%= f.text_field :name %>
|
4
|
+
<%= f.text_field :number %>
|
5
|
+
<%= f.submit nil, wrap: { all: nil } %>
|
6
|
+
<% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<tr>
|
2
|
+
<td class="has-text-right"><%= Ship::Driver.human_attribute_name(:name) %></td>
|
3
|
+
<td><%= @driver.name %></td>
|
4
|
+
</tr>
|
5
|
+
<tr>
|
6
|
+
<td class="has-text-right"><%= Ship::Driver.human_attribute_name(:number) %></td>
|
7
|
+
<td><%= @driver.number %></td>
|
8
|
+
</tr>
|
9
|
+
<tr>
|
10
|
+
<td class="has-text-right"><%= Ship::Driver.human_attribute_name(:license) %></td>
|
11
|
+
<td><%= @driver.license %></td>
|
12
|
+
</tr>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%= content_for(:wechat_js) do %>
|
2
|
+
<%= wechat_config_js debug: false, apis: ['chooseImage', 'previewImage', 'uploadImage'] -%>
|
3
|
+
<meta name="turbo-visit-control" content="reload">
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<div class="weui-uploader p-4">
|
7
|
+
<div class="weui-uploader__hd">
|
8
|
+
<div class="weui-uploader__title">驾驶证</div>
|
9
|
+
</div>
|
10
|
+
<div class="weui-uploader__bd">
|
11
|
+
<div class="weui-uploader__input-box" data-controller="wechat">
|
12
|
+
<%= image_vite_tag 'license.jpg', data: { wechat_target: 'preview' }, class: 'weui-uploader__preview' %>
|
13
|
+
<div class="weui-uploader__input" data-action="click->wechat#chooseImage"></div>
|
14
|
+
<%= form_with theme: nil, model: Wechat::Media.new, url: { controller: 'wechat/my/medias', action: 'create' } do |f| %>
|
15
|
+
<%= f.hidden_field :source_type, value: @driver.class_name %>
|
16
|
+
<%= f.hidden_field :source_id, value: @driver.id %>
|
17
|
+
<%= f.hidden_field :attachment_name, value: 'license' %>
|
18
|
+
<%= f.hidden_field :media_id, data: { wechat_target: 'media' } %>
|
19
|
+
<% end %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div class="weui-panel">
|
2
|
+
<div class="weui-panel__hd level is-flex">
|
3
|
+
<div class="level-left">
|
4
|
+
<span class="level-item"><%= t('.title') %></span>
|
5
|
+
</div>
|
6
|
+
<div class="level-right mt-0">
|
7
|
+
<%= link_to({ action: 'show' }, class: 'weui-btn weui-btn_mini weui-btn_default level-item') do %>
|
8
|
+
<span><%= t('.show') %></span>
|
9
|
+
<% end %>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
<div class="weui-panel__bd">
|
13
|
+
<%= render 'uploader' %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<%= render partial: 'edit_form', locals: { driver: @driver } %>
|
18
|
+
|
19
|
+
<%= turbo_stream_from 'driver_edit' %>
|
20
|
+
<div id="driver_update"></div>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<div class="weui-panel">
|
2
|
+
<div class="weui-panel__hd level is-flex">
|
3
|
+
<div class="level-left">
|
4
|
+
<span class="level-item"><%= t('.title') %></span>
|
5
|
+
</div>
|
6
|
+
<div class="level-right mt-0">
|
7
|
+
<%= link_to({ action: 'edit' }, class: 'weui-btn weui-btn_mini weui-btn_default level-item') do %>
|
8
|
+
<span><%= t('.edit') %></span>
|
9
|
+
<% end %>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
<div class="weui-panel__bd">
|
13
|
+
<% if @driver.license.attached? %>
|
14
|
+
<%= image_tag @driver.license.url, class: 'image' %>
|
15
|
+
<% else %>
|
16
|
+
<%= render 'uploader' %>
|
17
|
+
<% end %>
|
18
|
+
<div class="weui-form-preview">
|
19
|
+
<div class="weui-form-preview__bd">
|
20
|
+
<div class="weui-form-preview__item">
|
21
|
+
<div class="weui-form-preview__label"><%= Ship::Driver.human_attribute_name(:name) %></div>
|
22
|
+
<div class="weui-form-preview__value"><%= @driver.name %></div>
|
23
|
+
</div>
|
24
|
+
<div class="weui-form-preview__item">
|
25
|
+
<div class="weui-form-preview__label"><%= Ship::Driver.human_attribute_name(:number) %></div>
|
26
|
+
<div class="weui-form-preview__value"><%= @driver.number %></div>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<%= turbo_stream_from 'driver_edit' %>
|
33
|
+
<div id="driver_update"></div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="weui-search-bar" data-controller="search">
|
2
|
+
<%= form_with theme: nil, class: 'weui-search-bar__form', method: :get, local: true do |f| %>
|
3
|
+
<div class="weui-search-bar__box">
|
4
|
+
<i class="weui-icon-search"></i>
|
5
|
+
<%= f.search_field 'name-like', value: params['name-like'], class: 'weui-search-bar__input', placeholder: '搜索', data: { search_target: 'input' } %>
|
6
|
+
<a class="weui-icon-clear" data-action="search#clear"></a>
|
7
|
+
</div>
|
8
|
+
<label class="weui-search-bar__label" data-search-target="label" data-action="click->search#focus">
|
9
|
+
<i class="weui-icon-search"></i>
|
10
|
+
<span>搜索</span>
|
11
|
+
</label>
|
12
|
+
<% end %>
|
13
|
+
<a class="weui-search-bar__cancel-btn" data-action="search#cancel">取消</a>
|
14
|
+
</div>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= form_with theme: 'search', model: Ship::Favorite.new do |f| %>
|
2
|
+
<div class="field-body">
|
3
|
+
<%= f.text_field :name %>
|
4
|
+
<div class="field is-narrow">
|
5
|
+
<%= f.submit %>
|
6
|
+
<%= link_to t('.clear'), filter_params(except: [:name]), class: 'button is-light' %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
<% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<tr>
|
2
|
+
<td class="has-text-right"><%= Ship::Favorite.human_attribute_name(:driver_name) %></td>
|
3
|
+
<td><%= @favorite.driver.name %></td>
|
4
|
+
</tr>
|
5
|
+
<tr>
|
6
|
+
<td class="has-text-right"><%= Ship::Favorite.human_attribute_name(:driver_avatar) %></td>
|
7
|
+
<td><%= image_tag @favorite.driver.license if @favorite.driver.license.attached? %></td>
|
8
|
+
</tr>
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%= f.fields :locations, model: @line.locations.sort_by(&:position) do |ef| %>
|
2
|
+
<%= ef.hidden_field :poiname %>
|
3
|
+
<%= ef.hidden_field :poiaddress %>
|
4
|
+
<%= ef.hidden_field :cityname %>
|
5
|
+
<%= ef.hidden_field :lat %>
|
6
|
+
<%= ef.hidden_field :lng %>
|
7
|
+
<%= ef.hidden_field :position %>
|
8
|
+
<% end %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<tr id="tr_<%= location.position %>">
|
2
|
+
<td class="has-text-right"><%= location.position_text %></td>
|
3
|
+
<td>
|
4
|
+
<%= button_to({ action: 'select', index: location.position - 1 }, form_class: 'button_box') do %>
|
5
|
+
<span id="<%= location.position - 1 %>_name"><%= location.poiname %></span>
|
6
|
+
<% end %>
|
7
|
+
</td>
|
8
|
+
<td style="width: 5em">
|
9
|
+
<button class="button is-white" data-controller="former" data-former-id-value="new_line" data-former-url-value="<%= url_for({ action: 'add', position: location.position }) %>" data-action="former#submit">
|
10
|
+
<i class="fas fa-plus fa-lg"></i>
|
11
|
+
</button>
|
12
|
+
</td>
|
13
|
+
</tr>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<table class="table is-fullwidth is-hoverable as-show" id="line-table" style="table-layout: fixed">
|
2
|
+
<tbody>
|
3
|
+
<%= render partial: 'item_location', collection: @line.locations.sort_by(&:position), as: :location %>
|
4
|
+
</tbody>
|
5
|
+
<tfoot>
|
6
|
+
<tr>
|
7
|
+
<td colspan="3">
|
8
|
+
<%= form_with model: @line, url: { action: 'create' }, id: 'new_line' do |f| %>
|
9
|
+
<%= render partial: 'item_field', locals: { f: f } %>
|
10
|
+
<button type="submit" form="new_line" class="weui-btn weui-btn_primary">确认</button>
|
11
|
+
<% end %>
|
12
|
+
</td>
|
13
|
+
</tr>
|
14
|
+
</tfoot>
|
15
|
+
</table>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div class="weui-tabbar weui-tabbar_fixed" data-controller="qq-map" data-qq-map-id-value="qq-map">
|
2
|
+
<div class="weui-tabbar__item">
|
3
|
+
<%= link_to :back, class: 'weui-btn weui-btn_default' do %>
|
4
|
+
<span>取消</span>
|
5
|
+
<% end %>
|
6
|
+
</div>
|
7
|
+
<div class="weui-tabbar__item">
|
8
|
+
<button class="weui-btn weui-btn_primary">确认</button>
|
9
|
+
</div>
|
10
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<iframe
|
2
|
+
class="as-top"
|
3
|
+
id="qq-map"
|
4
|
+
src="https://apis.map.qq.com/tools/locpicker?type=1&key=<%= SETTING.dig(:qq_map, :key) %>&referer=work_design"
|
5
|
+
data-controller="qq-map"
|
6
|
+
data-action="message@window->qq-map#selected"
|
7
|
+
data-qq-map-name-value="line_locations_attributes"
|
8
|
+
data-qq-map-index-value="<%= params[:index] %>"
|
9
|
+
>
|
10
|
+
</iframe>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= turbo_stream.replace 'line-table', partial: 'new_form' %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render 'new_form' %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= turbo_stream.after 'line-table', partial: 'select' %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<table class="table is-fullwidth is-hoverable as-show">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th class="has-text-left">
|
5
|
+
<%= link_to({ action: 'index' }, class: 'button is-borderless') do %>
|
6
|
+
<i class="fas fa-angle-left fa-lg"></i>
|
7
|
+
<% end %>
|
8
|
+
</th>
|
9
|
+
<th class="has-text-right">
|
10
|
+
<button class="button is-borderless" data-controller="weui-actionsheet" data-weui-actionsheet-id-value="actionsheet" data-action="weui-actionsheet#toggle">
|
11
|
+
<i class="fas fa-ellipsis-h fa-lg"></i>
|
12
|
+
</button>
|
13
|
+
</th>
|
14
|
+
</tr>
|
15
|
+
</thead>
|
16
|
+
<tbody>
|
17
|
+
<%= render 'show_table' %>
|
18
|
+
</tbody>
|
19
|
+
</table>
|
20
|
+
|
21
|
+
<div class="weui-panel">
|
22
|
+
<div class="weui-panel__hd"><%= t('.title') %></div>
|
23
|
+
<div class="weui-panel__bd">
|
24
|
+
<div class="weui-cells mt-0">
|
25
|
+
<%= render partial: 'index_tbody', layout: 'index_tr', collection: @similars, as: :model %>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
|
30
|
+
<%= render 'actionsheet' %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= form_with theme: 'search', model: Ship::Location.new do |f| %>
|
2
|
+
<div class="field-body">
|
3
|
+
<%= f.text_field :name %>
|
4
|
+
<div class="field is-narrow">
|
5
|
+
<%= f.submit %>
|
6
|
+
<%= link_to t('.clear'), filter_params(except: [:name]), class: 'button is-light' %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
<% end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<th><%= Ship::Location.human_attribute_name(:poiname) %></th>
|
2
|
+
<th><%= Ship::Location.human_attribute_name(:poiaddress) %></th>
|
3
|
+
<th><%= Ship::Location.human_attribute_name(:cityname) %></th>
|
4
|
+
<th><%= Ship::Location.human_attribute_name(:lat) %></th>
|
5
|
+
<th><%= Ship::Location.human_attribute_name(:lng) %></th>
|
6
|
+
<th></th>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<tr>
|
2
|
+
<td class="has-text-right"><%= Ship::Location.human_attribute_name(:poiname) %></td>
|
3
|
+
<td><%= @location.poiname %></td>
|
4
|
+
</tr>
|
5
|
+
<tr>
|
6
|
+
<td class="has-text-right"><%= Ship::Location.human_attribute_name(:poiaddress) %></td>
|
7
|
+
<td><%= @location.poiaddress %></td>
|
8
|
+
</tr>
|
9
|
+
<tr>
|
10
|
+
<td class="has-text-right"><%= Ship::Location.human_attribute_name(:cityname) %></td>
|
11
|
+
<td><%= @location.cityname %></td>
|
12
|
+
</tr>
|
13
|
+
<tr>
|
14
|
+
<td class="has-text-right"><%= Ship::Location.human_attribute_name(:lat) %></td>
|
15
|
+
<td><%= @location.lat %></td>
|
16
|
+
</tr>
|
17
|
+
<tr>
|
18
|
+
<td class="has-text-right"><%= Ship::Location.human_attribute_name(:lng) %></td>
|
19
|
+
<td><%= @location.lng %></td>
|
20
|
+
</tr>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<div class="weui-panel">
|
2
|
+
<div class="weui-panel__hd">
|
3
|
+
<%= @produce_plan.title %>
|
4
|
+
</div>
|
5
|
+
<div class="weui-panel__bd">
|
6
|
+
<% @packages.each do |package| %>
|
7
|
+
<div class="weui-media-box weui-media-box_appmsg">
|
8
|
+
<div class="weui-media-box__hd"><%= image_tag package.user.avatar_url, style: 'width: 20px;' %></div>
|
9
|
+
<div class="weui-media-box__bd">
|
10
|
+
<h4 class="weui-media-box__title"><%= package.user.account_identities.join(',') %></h4>
|
11
|
+
<div class="weui-media-box__desc">
|
12
|
+
<%= package.trade_items.map(&->(o){ o.good.name }).join(',') %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
<div class="weui-media-box__ft">
|
16
|
+
<% if package.wait_item %>
|
17
|
+
<div class="weui-btn weui-btn_mini weui-btn_primary">
|
18
|
+
<p><%= package.wait_item.position %></p>
|
19
|
+
<p><%= package.state_i18n %></p>
|
20
|
+
</div>
|
21
|
+
<% else %>
|
22
|
+
<%= link_to wait_my_principal_address_package_path(@address, package), method: :put, class: 'weui-btn weui-btn_mini weui-btn_primary' do %>
|
23
|
+
<%= t('.wait') %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<% end %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<%= content_for(:wechat_js) do %>
|
2
|
+
<%= wechat_config_js debug: false, apis: ['openAddress'] -%>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<div class="weui-panel">
|
6
|
+
<div class="weui-panel__hd"><%= t('.title') %></div>
|
7
|
+
<div class="weui-panel__bd">
|
8
|
+
<% @addresses.each do |address| %>
|
9
|
+
<div class="weui-media-box weui-media-box_appmsg">
|
10
|
+
<div class="weui-media-box__bd">
|
11
|
+
<h6 class="weui-media-box__title">
|
12
|
+
<%= link_to address.name, my_principal_address_path(address) %>
|
13
|
+
</h6>
|
14
|
+
<div class="weui-media-box__desc"><%= address.area.full_name %><%= address.detail %></div>
|
15
|
+
</div>
|
16
|
+
<div class="weui-media-box__ft">
|
17
|
+
<div class="weui-btn weui-btn_default">
|
18
|
+
<%= link_to '详情', plans_my_principal_address_path(address.id) %>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
24
|
+
<div class="weui-panel__ft">
|
25
|
+
<%= link_to fork_my_addresses_path, class: 'weui-cell weui-cell_access weui-cell_link' do %>
|
26
|
+
<div class="weui-cell__bd"><%= t('.new') %></div>
|
27
|
+
<span class="weui-cell__ft"></span>
|
28
|
+
<% end %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<% @produce_plans.each do |produce_plan| %>
|
2
|
+
<div class="weui-form-preview">
|
3
|
+
<div class="weui-form-preview__hd">
|
4
|
+
<div class="weui-form-preview__item">
|
5
|
+
<label class="weui-form-preview__label"></label>
|
6
|
+
<em class="weui-form-preview__value"><%= produce_plan.title %></em>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
<div class="weui-form-preview__bd">
|
10
|
+
<div class="weui-form-preview__item">
|
11
|
+
<label class="weui-form-preview__label"><%= ProducePlan.human_attribute_name(:start_at) %></label>
|
12
|
+
<span class="weui-form-preview__value"><time data-controller="time"><%= produce_plan.start_at.to_s(:rfc822) %></time></span>
|
13
|
+
</div>
|
14
|
+
<div class="weui-form-preview__item">
|
15
|
+
<label class="weui-form-preview__label"><%= ProducePlan.human_attribute_name(:finish_at) %></label>
|
16
|
+
<span class="weui-form-preview__value"><time data-controller="time"><%= produce_plan.finish_at.to_s(:rfc822) %></time></span>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<div class="weui-form-preview__ft">
|
20
|
+
<%= link_to '操作', my_principal_address_packages_path(@address, produce_plan_id: produce_plan.id), class: 'weui-form-preview__btn weui-form-preview__btn_primary' %>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
<% end %>
|