educode_sales 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/images/educode_sales/logo.png +0 -0
- data/app/controllers/educode_sales/businesses_controller.rb +14 -1
- data/app/controllers/educode_sales/follow_ups_controller.rb +2 -2
- data/app/controllers/educode_sales/places_controller.rb +1 -1
- data/app/controllers/educode_sales/sale_trends_controller.rb +2 -2
- data/app/controllers/educode_sales/sales_controller.rb +1 -1
- data/app/models/educode_sales/common.rb +2 -0
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +6 -7
- data/app/views/educode_sales/businesses/index.html.erb +38 -3
- data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +6 -7
- data/app/views/educode_sales/businesses/show_follow.html.erb +9 -9
- data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -1
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +16 -4
- data/app/views/layouts/educode_sales/application.html.erb +110 -36
- data/db/migrate/20211018054256_add_extras_to_commons.rb +6 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb60117f75870a9280a833425b4a29bac7172e70da78b061fa41ea92abc7c985
|
4
|
+
data.tar.gz: 203aaf0c96f4e246ab734cd3dc4844542563404f6939bc2613ae286fe37d8be7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 688e3848050cd08d8598e8434e0039db4aa6fb0972f3bd558ad026b68462080fe898802082f94dfcf67b7e3a765631ecc39befad5382028c30c0b4259fb4e045
|
7
|
+
data.tar.gz: 5ed1048e97b6cf03f127040239eb7a7c8011b72edf8a94deb42d65a829a4e7ed15b98ecb94bdeb662dc6dc66efe3fff6e22cfeef28d819082a8f8ce9879cfeee
|
Binary file
|
@@ -80,7 +80,6 @@ module EducodeSales
|
|
80
80
|
@businesses = @businesses.where("educode_sales_businesses.created_at > ? AND educode_sales_businesses.created_at < ?", date[0], date[1])
|
81
81
|
end
|
82
82
|
|
83
|
-
|
84
83
|
if params[:sort].present? && params[:sort][:field]
|
85
84
|
@businesses = @businesses.order("#{params[:sort][:field]} #{params[:sort][:order]}")
|
86
85
|
else
|
@@ -89,6 +88,18 @@ module EducodeSales
|
|
89
88
|
|
90
89
|
@business_count = @businesses.count
|
91
90
|
|
91
|
+
if params[:q].present? && params[:q][:all].present?
|
92
|
+
@businesses = Business.all
|
93
|
+
end
|
94
|
+
|
95
|
+
if params[:q].present? && params[:q][:mine].present?
|
96
|
+
ids = AssignFollowUp.where(staff_id: @current_admin.id).pluck(:follow_up_id)
|
97
|
+
ids1 = FollowUp.where(id: ids).pluck(:business_id)
|
98
|
+
ids2 = Business.where(staff_id: @current_admin.id).pluck(:id)
|
99
|
+
# @businesses = Business.where(id: ids1+ids2)
|
100
|
+
@businesses =Business.where("educode_sales_businesses.id in (?) or educode_sales_businesses.staff_id = ?", ids1, @current_admin.id)
|
101
|
+
end
|
102
|
+
|
92
103
|
@businesses = @businesses.select("
|
93
104
|
educode_sales_businesses.*,
|
94
105
|
last_follow.invitation_at,
|
@@ -177,6 +188,7 @@ module EducodeSales
|
|
177
188
|
|
178
189
|
def new_follow_record
|
179
190
|
load_business
|
191
|
+
@o_name = EducodeSales::Common.find_by(extras: EducodeSales::Common::OTYPE)&.name
|
180
192
|
@clazz = Common.where(clazz: 'business_type').order("position").pluck(:name, :id)
|
181
193
|
@stages = Common.where(clazz: 'business_step').order("position").pluck(:name, :id)
|
182
194
|
@places = Place.order("created_at desc").pluck(:name, :id)
|
@@ -201,6 +213,7 @@ module EducodeSales
|
|
201
213
|
end
|
202
214
|
|
203
215
|
def edit_follow_record
|
216
|
+
@o_name = EducodeSales::Common.find_by(extras: EducodeSales::Common::OTYPE)&.name
|
204
217
|
@follow_up = FollowUp.find(params[:follow_up_id])
|
205
218
|
@clazz = Common.where(clazz: 'business_type').order("position").pluck(:name, :id)
|
206
219
|
@stages = Common.where(clazz: 'business_step').order("position").pluck(:name, :id)
|
@@ -11,7 +11,7 @@ module EducodeSales
|
|
11
11
|
follow_up.assign_follow_ups.build(staff_id: d)
|
12
12
|
end
|
13
13
|
|
14
|
-
follow_up.profit_amount = follow_up.actual_amount
|
14
|
+
follow_up.profit_amount = follow_up.actual_amount - (follow_up.divide_amount.to_i) if follow_up.actual_amount
|
15
15
|
if follow_up.save
|
16
16
|
if @business.last_follow_up.present?
|
17
17
|
@business.last_follow_up.key_person.each do |d|
|
@@ -54,7 +54,7 @@ module EducodeSales
|
|
54
54
|
assign_follow_ups << follow_up.assign_follow_ups.find_or_initialize_by(staff_id: d)
|
55
55
|
end
|
56
56
|
follow_up.assign_follow_ups = assign_follow_ups
|
57
|
-
follow_up.profit_amount = follow_up.actual_amount
|
57
|
+
follow_up.profit_amount = follow_up.actual_amount - (follow_up.divide_amount.to_i) * 0.01 if follow_up.actual_amount
|
58
58
|
if follow_up.save
|
59
59
|
render_success
|
60
60
|
else
|
@@ -9,7 +9,7 @@ module EducodeSales
|
|
9
9
|
end
|
10
10
|
format.json do
|
11
11
|
@places = Place.page(params[:page]).per(params[:limit])
|
12
|
-
@x = Common.find_by(
|
12
|
+
@x = Common.find_by(extras: EducodeSales::Common::XTYPE)&.id
|
13
13
|
@stage_ids = Common.where(clazz: '商机阶段', name: ['已中标','已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
|
14
14
|
end
|
15
15
|
end
|
@@ -9,8 +9,8 @@ module EducodeSales
|
|
9
9
|
@year = params[:year] ? params[:year] : Time.now.year
|
10
10
|
@years = (1..(Time.now.year - 2020)).map { |d| 2020 + d }
|
11
11
|
year_time = "#{@year}-01-01 00:00:00"
|
12
|
-
x = Common.find_by(
|
13
|
-
o = Common.find_by(
|
12
|
+
x = Common.find_by(extras: EducodeSales::Common::XTYPE)&.id
|
13
|
+
o = Common.find_by(extras: EducodeSales::Common::OTYPE)&.id
|
14
14
|
@sale_trend = SaleTrend.find_or_create_by(year: @year)
|
15
15
|
@business_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.clazz_id != ?", x, o).where("educode_sales_follow_ups.created_at >= ?", year_time).sum(:total_amount).round(2)
|
16
16
|
stage_ids = Common.where(clazz: '商机阶段', name: ['已中标','已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
|
@@ -14,7 +14,7 @@ module EducodeSales
|
|
14
14
|
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
15
15
|
@a_clazz = Common.find_by(clazz: 'business_type', name: 'A类')
|
16
16
|
@b_clazz = Common.find_by(clazz: 'business_type', name: 'B类')
|
17
|
-
@x = Common.find_by(
|
17
|
+
@x = Common.find_by(extras: EducodeSales::Common::XTYPE)
|
18
18
|
@step_ids = Common.where(name: %w(已中标 已签单 已验收 回款中 服务中 已结束), clazz: 'business_step').pluck(:id)
|
19
19
|
|
20
20
|
@staffs = Staff.where(job_type: common.id).page(params[:page]).per(params[:limit])
|
@@ -17,9 +17,9 @@
|
|
17
17
|
<br>
|
18
18
|
<div class="layui-inline">
|
19
19
|
<label class="layui-form-label required">项目类型</label>
|
20
|
-
<%if EducodeSales::FollowUp.where(business_id: @follow_up.business.id,clazz_id: EducodeSales::Common.find_by(name:
|
20
|
+
<%if EducodeSales::FollowUp.where(business_id: @follow_up.business.id,clazz_id: EducodeSales::Common.find_by(name: @o_name).id).count >= 2 %>
|
21
21
|
<div class="layui-input-inline">
|
22
|
-
<%= select_tag "clazz_id", options_for_select([[
|
22
|
+
<%= select_tag "clazz_id", options_for_select([[@o_name,EducodeSales::Common.find_by(name: @o_name).id]]),:disabled => true, class: 'required' %>
|
23
23
|
</div>
|
24
24
|
<%else %>
|
25
25
|
<div class="layui-input-inline">
|
@@ -56,9 +56,9 @@
|
|
56
56
|
</div>
|
57
57
|
</div>
|
58
58
|
<div class="layui-inline">
|
59
|
-
<label class="layui-form-label"
|
59
|
+
<label class="layui-form-label">合同额</label>
|
60
60
|
<div class="layui-input-inline">
|
61
|
-
<input name="actual_amount" type="number" class="layui-input" value="<%= @follow_up.actual_amount %>">
|
61
|
+
<input name="actual_amount" type="number" class="layui-input" placeholder="本单位的签单金额" value="<%= @follow_up.actual_amount %>">
|
62
62
|
</div>
|
63
63
|
</div>
|
64
64
|
<br>
|
@@ -69,11 +69,10 @@
|
|
69
69
|
</div>
|
70
70
|
</div>
|
71
71
|
<div class="layui-inline">
|
72
|
-
<label class="layui-form-label"
|
72
|
+
<label class="layui-form-label">渠道分成</label>
|
73
73
|
<div class="layui-input-inline">
|
74
74
|
<input name="divide_rate" class="layui-input" value="<%= @follow_up.divide_rate%>">
|
75
75
|
</div>
|
76
|
-
<span style="margin-top: 10px; float:left;">%</span>
|
77
76
|
</div>
|
78
77
|
<div class="layui-form-item">
|
79
78
|
<label class="layui-form-label">指定跟进人</label>
|
@@ -82,7 +81,7 @@
|
|
82
81
|
</div>
|
83
82
|
</div>
|
84
83
|
<div class="layui-form-item layui-form-text">
|
85
|
-
<label class="layui-form-label required"
|
84
|
+
<label class="layui-form-label required">最新进展</label>
|
86
85
|
<div class="layui-input-block">
|
87
86
|
<textarea name="description" lay-verify="required" placeholder="此处可以填写:
|
88
87
|
1、有无预算;
|
@@ -68,6 +68,8 @@
|
|
68
68
|
<% if can? :create, EducodeSales::Business %>
|
69
69
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加商机</button>
|
70
70
|
<% end %>
|
71
|
+
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="mine"> 我的商机</button>
|
72
|
+
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="all"> 全部商机</button>
|
71
73
|
</div>
|
72
74
|
</script>
|
73
75
|
<script type="text/html" id="currentTableBar">
|
@@ -150,7 +152,7 @@
|
|
150
152
|
// },
|
151
153
|
{
|
152
154
|
field: 'clazz',
|
153
|
-
width:
|
155
|
+
width: 120,
|
154
156
|
title: '类型'
|
155
157
|
},
|
156
158
|
{
|
@@ -195,7 +197,12 @@
|
|
195
197
|
{
|
196
198
|
field: 'last_follow_person',
|
197
199
|
width: 120,
|
198
|
-
title: '
|
200
|
+
title: '最新跟进人'
|
201
|
+
},
|
202
|
+
{
|
203
|
+
field: 'latest_time',
|
204
|
+
width: 200,
|
205
|
+
title: '最新跟进时间'
|
199
206
|
},
|
200
207
|
{
|
201
208
|
title: '操作',
|
@@ -361,7 +368,35 @@
|
|
361
368
|
$(window).on("resize", function () {
|
362
369
|
layer.full(index);
|
363
370
|
});
|
364
|
-
} else if (obj.event === '
|
371
|
+
} else if (obj.event === 'all') {
|
372
|
+
search = {"all":"1"}
|
373
|
+
table.reload('businesses_table', {
|
374
|
+
page: {
|
375
|
+
curr: 1
|
376
|
+
},
|
377
|
+
where: {q: search, sort: sort}
|
378
|
+
}, 'data');
|
379
|
+
form.val('search_form', {
|
380
|
+
name: '', department: '', staff_id: '', business_type: '', business_step: '',
|
381
|
+
place_id: '', date: '', area: ''
|
382
|
+
})
|
383
|
+
return false;
|
384
|
+
}
|
385
|
+
else if (obj.event === 'mine') {
|
386
|
+
search = {"mine":"1"}
|
387
|
+
table.reload('businesses_table', {
|
388
|
+
page: {
|
389
|
+
curr: 1
|
390
|
+
},
|
391
|
+
where: {q: search, sort: sort}
|
392
|
+
}, 'data');
|
393
|
+
form.val('search_form', {
|
394
|
+
name: '', department: '', staff_id: '', business_type: '', business_step: '',
|
395
|
+
place_id: '', date: '', area: ''
|
396
|
+
})
|
397
|
+
return false;
|
398
|
+
}
|
399
|
+
else if (obj.event === 'delete') {
|
365
400
|
var checkStatus = table.checkStatus('currentTableId'),
|
366
401
|
data = checkStatus.data;
|
367
402
|
layer.alert(JSON.stringify(data));
|
@@ -20,6 +20,7 @@ json.data do
|
|
20
20
|
json.assign_follow_ups d.last_follow_up.present? ? d.last_follow_up.assign_follow_ups.pluck(:staff_id) : []
|
21
21
|
json.current_staff_id @current_admin.id
|
22
22
|
json.staff_id d.staff_id
|
23
|
+
json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : ''
|
23
24
|
end
|
24
25
|
end
|
25
26
|
json.code 0
|
@@ -17,9 +17,9 @@
|
|
17
17
|
<br>
|
18
18
|
<div class="layui-inline">
|
19
19
|
<label class="layui-form-label required">项目类型</label>
|
20
|
-
<%if @last_follow_up&.clazz&.name ==
|
20
|
+
<%if @last_follow_up&.clazz&.name == @o_name %>
|
21
21
|
<div class="layui-input-inline">
|
22
|
-
<%= select_tag "clazz_id", options_for_select([[
|
22
|
+
<%= select_tag "clazz_id", options_for_select([[@o_name,EducodeSales::Common.find_by(name: @o_name).id]]),:disabled => true, class: 'required' %>
|
23
23
|
</div>
|
24
24
|
<%else %>
|
25
25
|
<div class="layui-input-inline">
|
@@ -59,9 +59,9 @@
|
|
59
59
|
</div>
|
60
60
|
</div>
|
61
61
|
<div class="layui-inline">
|
62
|
-
<label class="layui-form-label"
|
62
|
+
<label class="layui-form-label">合同额(万)</label>
|
63
63
|
<div class="layui-input-inline">
|
64
|
-
<input name="actual_amount" type="number" class="layui-input" autocomplete="off"
|
64
|
+
<input name="actual_amount" type="number" class="layui-input" autocomplete="off" placeholder="本单位的签单金额"
|
65
65
|
value="<%= @last_follow_up&.actual_amount%>">
|
66
66
|
</div>
|
67
67
|
</div>
|
@@ -73,11 +73,10 @@
|
|
73
73
|
</div>
|
74
74
|
</div>
|
75
75
|
<div class="layui-inline">
|
76
|
-
<label class="layui-form-label"
|
76
|
+
<label class="layui-form-label">渠道分成</label>
|
77
77
|
<div class="layui-input-inline">
|
78
78
|
<input name="divide_rate" class="layui-input" value="<%= @last_follow_up&.divide_rate%>">
|
79
79
|
</div>
|
80
|
-
<span style="margin-top: 10px; float:left;">%</span>
|
81
80
|
</div>
|
82
81
|
<div class="layui-form-item">
|
83
82
|
<label class="layui-form-label">指定跟进人</label>
|
@@ -86,7 +85,7 @@
|
|
86
85
|
</div>
|
87
86
|
</div>
|
88
87
|
<div class="layui-form-item layui-form-text">
|
89
|
-
<label class="layui-form-label required"
|
88
|
+
<label class="layui-form-label required">最新进展</label>
|
90
89
|
<div class="layui-input-block">
|
91
90
|
<textarea name="description" lay-verify="required" placeholder="此处可以填写:
|
92
91
|
1、有无预算;
|
@@ -86,9 +86,14 @@
|
|
86
86
|
title: '时间',
|
87
87
|
sort: true
|
88
88
|
},
|
89
|
+
{
|
90
|
+
field: 'staff',
|
91
|
+
width: 100,
|
92
|
+
title: '跟进人',
|
93
|
+
},
|
89
94
|
{
|
90
95
|
field: 'clazz',
|
91
|
-
width:
|
96
|
+
width: 120,
|
92
97
|
title: '类型',
|
93
98
|
},
|
94
99
|
{
|
@@ -120,12 +125,12 @@
|
|
120
125
|
{
|
121
126
|
field: 'actual_amount',
|
122
127
|
width: 100,
|
123
|
-
title: '
|
128
|
+
title: '合同额',
|
124
129
|
},
|
125
130
|
{
|
126
131
|
field: 'divide_rate',
|
127
|
-
width:
|
128
|
-
title: '
|
132
|
+
width: 100,
|
133
|
+
title: '渠道分成',
|
129
134
|
},
|
130
135
|
{
|
131
136
|
field: 'money',
|
@@ -138,11 +143,6 @@
|
|
138
143
|
title: '回款计划',
|
139
144
|
templet: '#edit_plan'
|
140
145
|
},
|
141
|
-
{
|
142
|
-
field: 'staff',
|
143
|
-
width: 100,
|
144
|
-
title: '跟进人',
|
145
|
-
},
|
146
146
|
{
|
147
147
|
field: 'place',
|
148
148
|
width: 200,
|
@@ -9,7 +9,7 @@ json.data do
|
|
9
9
|
json.reception_at d.reception_at&.to_s(:date)
|
10
10
|
json.total_amount d.total_amount
|
11
11
|
json.actual_amount d.actual_amount
|
12
|
-
json.divide_rate d.
|
12
|
+
json.divide_rate d.divide_amount ? d.divide_amount : ""
|
13
13
|
json.staff d.staff.user.real_name
|
14
14
|
json.place d.place&.name
|
15
15
|
json.money_plans_count d.money_plans_count
|
@@ -47,7 +47,7 @@
|
|
47
47
|
</div>
|
48
48
|
</div>
|
49
49
|
<div class="layui-inline">
|
50
|
-
<label class="layui-form-label"
|
50
|
+
<label class="layui-form-label">合同额:</label>
|
51
51
|
<div class="layui-input-inline">
|
52
52
|
<%= @follow_up.actual_amount %>万
|
53
53
|
</div>
|
@@ -60,9 +60,9 @@
|
|
60
60
|
</div>
|
61
61
|
</div>
|
62
62
|
<div class="layui-inline">
|
63
|
-
<label class="layui-form-label"
|
63
|
+
<label class="layui-form-label">渠道分成:</label>
|
64
64
|
<div class="layui-input-inline">
|
65
|
-
<%= @follow_up.divide_rate
|
65
|
+
<%= @follow_up.divide_rate %>
|
66
66
|
</div>
|
67
67
|
</div>
|
68
68
|
<div class="ayui-form-item">
|
@@ -72,7 +72,7 @@
|
|
72
72
|
</div>
|
73
73
|
</div>
|
74
74
|
<div class="layui-form-item layui-form-text">
|
75
|
-
<label class="layui-form-label"
|
75
|
+
<label class="layui-form-label">最新进展:</label>
|
76
76
|
<div class="layui-input-block" style="padding-right: 20px;">
|
77
77
|
<pre><%= @follow_up.description %></pre>
|
78
78
|
</div>
|
@@ -83,5 +83,17 @@
|
|
83
83
|
<pre><%= @follow_up.advise %></pre>
|
84
84
|
</div>
|
85
85
|
</div>
|
86
|
+
<div class="layui-form-item layui-form-text">
|
87
|
+
<label class="layui-form-label">时间:</label>
|
88
|
+
<div class="layui-input-block" style="padding-right: 20px;">
|
89
|
+
<pre><%= @follow_up.created_at.to_s %></pre>
|
90
|
+
</div>
|
91
|
+
</div>
|
92
|
+
<div class="layui-form-item layui-form-text">
|
93
|
+
<label class="layui-form-label">跟进人:</label>
|
94
|
+
<div class="layui-input-block" style="padding-right: 20px;">
|
95
|
+
<pre><%= @follow_up.staff.user.real_name %></pre>
|
96
|
+
</div>
|
97
|
+
</div>
|
86
98
|
</div>
|
87
99
|
</form>
|
@@ -10,13 +10,19 @@
|
|
10
10
|
<%= stylesheet_link_tag "educode_sales/application", media: "all" %>
|
11
11
|
<%= javascript_include_tag "educode_sales/application" %>
|
12
12
|
</head>
|
13
|
-
<body>
|
14
|
-
<div class="layui-layout layui-layout-admin">
|
13
|
+
<body class="" id="body">
|
14
|
+
<div class="layui-layout layui-layout-admin " >
|
15
15
|
<div class="layui-header">
|
16
|
-
<div class="layui-logo layui-hide-xs layui-bg-black">
|
16
|
+
<div class="layui-logo layui-hide-xs layui-bg-black layuimini-logo">
|
17
17
|
<%= image_tag "educode_sales/logo.png", class: 'header-logo' %>
|
18
18
|
<span class="app-title">营销系统</span>
|
19
19
|
</div>
|
20
|
+
|
21
|
+
<ul class="layui-nav i_class" style="left: 200px">
|
22
|
+
<li class="layui-nav-item layui-show-xs-inline-block " lay-header-event="menuLeft">
|
23
|
+
<a href="javascript:;"> <i id="leftEnumIcon" class="layui-icon layui-icon-shrink-right"></i></a>
|
24
|
+
</li>
|
25
|
+
</ul>
|
20
26
|
<ul class="layui-nav layui-layout-right">
|
21
27
|
<li class="layui-nav-item layui-hide layui-show-md-inline-block">
|
22
28
|
<a href="javascript:;">
|
@@ -41,64 +47,64 @@
|
|
41
47
|
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
42
48
|
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
43
49
|
<li class="layui-nav-item layui-nav-itemed">
|
44
|
-
<a class="" href="javascript:;"><b>销售活动</b></a>
|
50
|
+
<a class="" href="javascript:;"><b><i class="layui-icon layui-icon-template-1" style="font-size: 25px; padding-right: 20px"></i>销售活动</b></a>
|
45
51
|
<dl class="layui-nav-child">
|
46
52
|
<% if can? :trends, EducodeSales::SaleTrend %>
|
47
|
-
|
48
|
-
|
49
|
-
|
53
|
+
<dd>
|
54
|
+
<a href="/missions/sale_trends/trends" class="<%= current?('layui-this', trends_sale_trends_path) %>"><i class="layui-icon layui-icon-chart-screen" style="font-size: 25px; padding-right: 20px"></i>市场态势</a>
|
55
|
+
</dd>
|
50
56
|
<% end %>
|
51
57
|
<% if can? :sales, EducodeSales::Staff %>
|
52
|
-
|
53
|
-
|
58
|
+
<dd><a href="/missions/sales" class="<%= current?('layui-this', sales_path) %>"><i class="layui-icon layui-icon-username" style="font-size: 25px; padding-right: 20px"></i>销售分工</a>
|
59
|
+
</dd>
|
54
60
|
<% end %>
|
55
61
|
<% if can? :read, EducodeSales::Business %>
|
56
|
-
|
57
|
-
|
62
|
+
<dd><a href="/missions/businesses" class="<%= current?('layui-this', businesses_path) %>"><i class="layui-icon layui-icon-component" style="font-size: 25px; padding-right: 20px"></i>商机管理</a>
|
63
|
+
</dd>
|
58
64
|
<% end %>
|
59
65
|
<% if can? :read, EducodeSales::Place %>
|
60
|
-
|
66
|
+
<dd><a href="/missions/places" class="<%= current?('layui-this', places_path) %>"><i class="layui-icon layui-icon-tabs" style="font-size: 25px; padding-right: 20px"></i>渠道管理</a></dd>
|
61
67
|
<% end %>
|
62
68
|
<% if can? :read, EducodeSales::SalePlan %>
|
63
|
-
|
69
|
+
<dd><a href="/missions/plans" class="<%= current?('layui-this', plans_path) %>"><i class="layui-icon layui-icon-form" style="font-size: 25px; padding-right: 20px"></i>销售计划</a></dd>
|
64
70
|
<% end %>
|
65
71
|
</dl>
|
66
72
|
</li>
|
67
73
|
<li class="layui-nav-item layui-nav-itemed">
|
68
|
-
<a class="" href="javascript:;"><b>运营活动</b></a>
|
74
|
+
<a class="" href="javascript:;"><b><i class="layui-icon layui-icon-app" style="font-size: 25px; padding-right: 20px"></i>运营活动</b></a>
|
69
75
|
<dl class="layui-nav-child">
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
76
|
+
<% if can? :read, EducodeSales::OperationTrend %>
|
77
|
+
<dd>
|
78
|
+
<a href="/missions/operations/trends" class="<%= current?('layui-this', trends_operations_path) %>"><i class="layui-icon layui-icon-chart" style="font-size: 25px; padding-right: 20px"></i>运营态势</a>
|
79
|
+
</dd>
|
80
|
+
<% end %>
|
81
|
+
<% if can? :operations, EducodeSales::Staff %>
|
82
|
+
<dd>
|
83
|
+
<a href="/missions/sales/operations" class="<%= current?('layui-this', operations_sales_path) %>"><i class="layui-icon layui-icon-friends" style="font-size: 25px; padding-right: 20px"></i>运营分工</a>
|
84
|
+
</dd>
|
79
85
|
<% end %>
|
80
86
|
<% if can? :read, EducodeSales::Teacher %>
|
81
|
-
|
87
|
+
<dd><a href="/missions/teachers" class="<%= current?('layui-this', teachers_path) %>"><i class="layui-icon layui-icon-release" style="font-size: 25px; padding-right: 20px"></i>教师运营</a></dd>
|
82
88
|
<% end %>
|
83
89
|
<% if can? :read, EducodeSales::Activity %>
|
84
|
-
|
90
|
+
<dd><a href="/missions/activities" class="<%= current?('layui-this', activities_path) %>"><i class="layui-icon layui-icon-engine" style="font-size: 25px; padding-right: 20px"></i>活动运营</a></dd>
|
85
91
|
<% end %>
|
86
92
|
<% if can? :read, EducodeSales::OperationPlan %>
|
87
|
-
|
88
|
-
|
89
|
-
|
93
|
+
<dd>
|
94
|
+
<a href="/missions/operation_plans" class="<%= current?('layui-this', operation_plans_path) %>"><i class="layui-icon layui-icon-log" style="font-size: 25px; padding-right: 20px"></i>运营计划</a>
|
95
|
+
</dd>
|
90
96
|
<% end %>
|
91
97
|
</dl>
|
92
98
|
</li>
|
93
99
|
<% if @current_admin.is_admin %>
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
100
|
+
<li class="layui-nav-item layui-nav-itemed">
|
101
|
+
<a class="" href="javascript:;"><b><i class="layui-icon layui-icon-set-sm" style="font-size: 25px; padding-right: 20px"></i>系统设置</b></a>
|
102
|
+
<dl class="layui-nav-child">
|
103
|
+
<dd><a href="/missions/roles" class="<%= current?('layui-this', roles_path) %>"><i class="layui-icon layui-icon-username" style="font-size: 25px; padding-right: 20px"></i>角色管理</a></dd>
|
104
|
+
<dd><a href="/missions/staffs" class="<%= current?('layui-this', staffs_path) %>"><i class="layui-icon layui-icon-user" style="font-size: 25px; padding-right: 20px"></i>人员管理</a></dd>
|
105
|
+
<dd><a href="/missions/commons" class="<%= current?('layui-this', commons_path) %>"><i class="layui-icon layui-icon-file" style="font-size: 25px; padding-right: 20px"></i>字典列表</a></dd>
|
106
|
+
</dl>
|
107
|
+
</li>
|
102
108
|
<% end %>
|
103
109
|
</ul>
|
104
110
|
</div>
|
@@ -120,3 +126,71 @@
|
|
120
126
|
|
121
127
|
</body>
|
122
128
|
</html>
|
129
|
+
<script type="text/javascript" charset="utf-8">
|
130
|
+
//头部事件
|
131
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
132
|
+
var $ = layui.jquery,
|
133
|
+
form = layui.form,
|
134
|
+
table = layui.table,
|
135
|
+
request = layui.request,
|
136
|
+
util = layui.util,
|
137
|
+
miniPage = layui.miniPage;
|
138
|
+
|
139
|
+
util.event('lay-header-event', { //util 记得 声明 var util = layui.util
|
140
|
+
//左侧菜单事件
|
141
|
+
menuLeft: function (othis) {
|
142
|
+
var body = $("#body");
|
143
|
+
var btn = $("#leftEnumIcon");
|
144
|
+
if (btn.hasClass('layui-icon-shrink-right')) {
|
145
|
+
menuHide(btn);
|
146
|
+
btn.addClass('btn-index');
|
147
|
+
} else if (btn.has('layui-icon-spread-left')) {
|
148
|
+
btn.removeClass('btn-index');
|
149
|
+
menuShow(btn);
|
150
|
+
|
151
|
+
}
|
152
|
+
|
153
|
+
$(window).resize(function () {
|
154
|
+
var width = $(document.body).width();
|
155
|
+
var btn = $("leftEnumIcon");
|
156
|
+
if (width < 1000) {
|
157
|
+
if (btn.hasClass('layui-icon-shrink-right')) {
|
158
|
+
menuShow(btn);
|
159
|
+
}
|
160
|
+
} else {
|
161
|
+
if (!btn.hasClass('btn-index')) {
|
162
|
+
if (btn.hasClass('layui-icon-spread-left')) {
|
163
|
+
menuHide(btn);
|
164
|
+
|
165
|
+
}
|
166
|
+
}
|
167
|
+
|
168
|
+
|
169
|
+
}
|
170
|
+
|
171
|
+
});
|
172
|
+
|
173
|
+
function menuShow(btn) {
|
174
|
+
btn.removeClass('layui-icon-spread-left').addClass('layui-icon-shrink-right');
|
175
|
+
body.removeClass('layuimini-mini')
|
176
|
+
$(".i_class").animate({left: '200px'});
|
177
|
+
// $(".zq-logo").animate({width: 'toggle'});
|
178
|
+
// $(".layui-body").animate({left: '200px'});
|
179
|
+
// $(".layui-footer").animate({left: '200px'});
|
180
|
+
}
|
181
|
+
|
182
|
+
function menuHide(btn) {
|
183
|
+
btn.removeClass('layui-icon-shrink-right').addClass('layui-icon-spread-left');
|
184
|
+
body.addClass('layuimini-mini');
|
185
|
+
// $(".layui-side").animate({width: '50px'}); //toggle如果原来div是隐藏的就会把元素显示,如果原来是显示则隐藏
|
186
|
+
$(".i_class").animate({left: '60px'});
|
187
|
+
// $(".layui-body").animate({left: '0px'});
|
188
|
+
// $(".layui-footer").animate({left: '0px'});
|
189
|
+
}
|
190
|
+
}
|
191
|
+
});
|
192
|
+
});
|
193
|
+
</script>
|
194
|
+
<style>
|
195
|
+
|
196
|
+
</style>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: educode_sales
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -333,6 +333,7 @@ files:
|
|
333
333
|
- db/migrate/20211009031109_add_tel_key_peoples.rb
|
334
334
|
- db/migrate/20211009063423_add_source_businesses.rb
|
335
335
|
- db/migrate/20211013060712_create_educode_sales_assign_follow_ups.rb
|
336
|
+
- db/migrate/20211018054256_add_extras_to_commons.rb
|
336
337
|
- lib/educode_sales.rb
|
337
338
|
- lib/educode_sales/engine.rb
|
338
339
|
- lib/educode_sales/version.rb
|