educode_sales 0.9.49 → 0.9.51
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/controllers/educode_sales/businesses_controller.rb +3 -2
- data/app/controllers/educode_sales/teacher_follows_controller.rb +2 -2
- data/app/controllers/educode_sales/teachers_controller.rb +10 -1
- data/app/views/educode_sales/businesses/time_line.html.erb +33 -5
- data/app/views/educode_sales/teachers/_index.html.erb +2 -2
- data/app/views/educode_sales/teachers/daily_paper.html.erb +19 -19
- data/app/views/layouts/educode_sales/application.html.erb +23 -20
- data/lib/educode_sales/version.rb +1 -1
- metadata +5 -6
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 411097f33fb5f752ee51f03c8b9fae5dfadb9b907a3cce60f0d7b2ef22616675
|
4
|
+
data.tar.gz: 2f468da41189154460af8385ee07aca0b04c2a2ab8bfdd9315b50179f39fa24f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a317a873faf7b57a4fff01bc0a8810a6439c80cf6f447f6067a570d6ae5afb136969d720dba2f903c89a37687735eee18a99c3c8373eef63ae9a8d41195c0f30
|
7
|
+
data.tar.gz: ec0be0f6b3bc15645a00f78db54cbea2c396a30625a4e1a490180740e2f92332cb0567ae7f14f31e63f9af8b00d8ef5a8e13b3eb48a9c7f03a31c030b6791ab9
|
@@ -107,7 +107,7 @@ module EducodeSales
|
|
107
107
|
# 区域管理商机
|
108
108
|
# 排查看区域商机,需要排除掉其它人员手上的监管学校
|
109
109
|
other_staff_school_id = EducodeSales::StaffSchool.where.not(staff_id: @current_admin.id).where("school_id IN (SELECT school_id FROM educode_sales_staff_schools WHERE staff_id = #{@current_admin.id}) IS NOT TRUE").distinct.pluck :school_id
|
110
|
-
|
110
|
+
|
111
111
|
school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id) + StaffSchool.where(staff_id: @current_admin.id).pluck(:school_id) - other_staff_school_id
|
112
112
|
@businesses = Business.joins("JOIN departments AS dp ON educode_sales_businesses.department_id = dp.id").where("dp.school_id in (?)", school_ids)
|
113
113
|
end
|
@@ -123,7 +123,7 @@ module EducodeSales
|
|
123
123
|
when '区域'
|
124
124
|
# 查看区域商机,需要排除掉其它人员手上的监管学校
|
125
125
|
other_staff_school_id = EducodeSales::StaffSchool.where.not(staff_id: @current_admin.id).where("school_id IN (SELECT school_id FROM educode_sales_staff_schools WHERE staff_id = #{@current_admin.id}) IS NOT TRUE").distinct.pluck :school_id
|
126
|
-
|
126
|
+
|
127
127
|
school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id) + StaffSchool.where(staff_id: @current_admin.id).pluck(:school_id) - other_staff_school_id
|
128
128
|
if can?(:special, EducodeSales::Business)
|
129
129
|
# 专项商机
|
@@ -492,6 +492,7 @@ module EducodeSales
|
|
492
492
|
respond_to do |format|
|
493
493
|
format.html do
|
494
494
|
@follow_ups = @business.follow_ups.order(created_at: :desc)
|
495
|
+
@latest = @follow_ups.present? ? @follow_ups[0] : nil
|
495
496
|
render layout: false
|
496
497
|
end
|
497
498
|
end
|
@@ -71,7 +71,7 @@ module EducodeSales
|
|
71
71
|
staff = Staff.find(params[:q][:staff_id])
|
72
72
|
school_ids = School.where(province: staff.areas.pluck(:name)).pluck(:id)
|
73
73
|
teacher_ids = EducodeSales::Teacher.joins("JOIN departments ON educode_sales_teachers.department_id = departments.id").where("departments.school_id in (?)", school_ids).pluck(:id)
|
74
|
-
@follow_ups =
|
74
|
+
@follow_ups = @follow_ups.where(teacher_id: teacher_ids)
|
75
75
|
end
|
76
76
|
|
77
77
|
if params[:q].present? && params[:q][:department].present?
|
@@ -118,7 +118,7 @@ module EducodeSales
|
|
118
118
|
else
|
119
119
|
@follow_ups = @follow_ups.order("educode_sales_teacher_follows.created_at desc")
|
120
120
|
end
|
121
|
-
|
121
|
+
@follow_ups = @follow_ups.page(params[:page]).per(params[:limit])
|
122
122
|
end
|
123
123
|
|
124
124
|
private
|
@@ -346,7 +346,16 @@ module EducodeSales
|
|
346
346
|
end
|
347
347
|
|
348
348
|
def daily_paper
|
349
|
-
|
349
|
+
# 累计完成教师
|
350
|
+
@total_teachers_num = @current_admin.operation_plans.where("created_at >= ?", Time.now.beginning_of_month).distinct.count("teacher_id")
|
351
|
+
@today_teacher_num = @current_admin.operation_plans.where("created_at >= ?", Time.now.beginning_of_day).distinct.count("teacher_id")
|
352
|
+
user_ids = @current_admin.operation_plans.joins(:teacher).where("educode_sales_teachers.user_id IS NOT NULL").pluck(:user_id)
|
353
|
+
@today_course_num = Course.joins(:course_members).where(course_members: {user_id: user_ids}).where("is_delete = 0 and role != 4 and excellent = 0 and is_hidden = 0").where("courses.created_at > ?", Time.now.beginning_of_day).count
|
354
|
+
|
355
|
+
my_area = @current_admin.areas.pluck(:name)
|
356
|
+
@total_users_num = UserExtension.joins(department: :school).where(schools: {province: my_area}).where("user_extensions.created_at > ?", Time.now.beginning_of_month).count
|
357
|
+
@today_users_num = UserExtension.joins(department: :school).where(schools: {province: my_area}).where("user_extensions.created_at > ?", Time.now.beginning_of_day).count
|
358
|
+
|
350
359
|
render layout: false
|
351
360
|
end
|
352
361
|
|
@@ -20,6 +20,9 @@
|
|
20
20
|
<br>
|
21
21
|
关键人:<% teacher_ids = f.key_person.present? ? f.key_person.pluck(:teacher_id) : [] %>
|
22
22
|
<%= EducodeSales::Teacher.where(id: teacher_ids).pluck(:name).join("、") %>
|
23
|
+
<% if f.id == @latest&.id && (f.created_at.present? ? (Time.now - f.created_at).to_f/3600 < 24 : false) %>
|
24
|
+
<a href="javascript:;" class="add_key" data-is_latest="<%= f.id == @latest&.id %>" data-id=<%= f.id %> data-flag="<%= f.created_at.present? ? (Time.now - f.created_at).to_f/3600 < 24 : false %>">添加关键人</a>
|
25
|
+
<% end %>
|
23
26
|
</p>
|
24
27
|
</div>
|
25
28
|
</li>
|
@@ -33,13 +36,38 @@
|
|
33
36
|
<script type="text/javascript" charset="utf-8">
|
34
37
|
|
35
38
|
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
39
|
+
var $ = layui.jquery,
|
40
|
+
table = layui.table,
|
41
|
+
request = layui.request,
|
42
|
+
miniPage = layui.miniPage;
|
43
|
+
form = layui.form;
|
41
44
|
|
42
45
|
});
|
46
|
+
$(".add_key").on("click", function(e) {
|
47
|
+
var data = e.currentTarget.dataset;
|
48
|
+
follow_up_id = data.id;
|
49
|
+
content = miniPage.getHrefContent('/missions/teachers/add_keys?follow_up_id=' + data.id);
|
50
|
+
openWH = miniPage.getOpenWidthHeight();
|
51
|
+
is_latest = data.is_latest == "true";
|
52
|
+
flag = data.flag == "true"
|
53
|
+
keyindex = layer.open({
|
54
|
+
title: '关键人',
|
55
|
+
type: 1,
|
56
|
+
shade: 0.2,
|
57
|
+
maxmin: true,
|
58
|
+
shadeClose: true,
|
59
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
60
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
61
|
+
content: content,
|
62
|
+
success: function (layero, index) {
|
63
|
+
// 重新渲染弹层中的下拉选择框select
|
64
|
+
form.render('select');
|
65
|
+
}
|
66
|
+
});
|
67
|
+
$(window).on("resize", function () {
|
68
|
+
layer.full(keyindex);
|
69
|
+
});
|
70
|
+
})
|
43
71
|
function demo(){
|
44
72
|
layer.closeAll()
|
45
73
|
business_id = parent.business_id
|
@@ -223,7 +223,7 @@
|
|
223
223
|
{
|
224
224
|
field: 'follow_person',
|
225
225
|
width: 120,
|
226
|
-
title: '
|
226
|
+
title: '最新跟进人',
|
227
227
|
},
|
228
228
|
{
|
229
229
|
field: 'followup_at',
|
@@ -293,7 +293,7 @@
|
|
293
293
|
{
|
294
294
|
field: 'mobile',
|
295
295
|
width: 120,
|
296
|
-
title: '
|
296
|
+
title: '联系电话',
|
297
297
|
},
|
298
298
|
{
|
299
299
|
field: 'wechat',
|
@@ -5,37 +5,37 @@
|
|
5
5
|
|
6
6
|
<p>一、数据指标</p>
|
7
7
|
<p>1、【教师合作-老客户运营】</p>
|
8
|
-
<p
|
9
|
-
<p
|
10
|
-
<p>今日已完成沟通
|
11
|
-
<p style="margin-bottom: 30px;"
|
8
|
+
<p>本月目标 ** 人;</p>
|
9
|
+
<p>累计完成 <%= @total_teachers_num %> 人; </p>
|
10
|
+
<p>今日已完成沟通 <%= @today_teacher_num %> 人;</p>
|
11
|
+
<p style="margin-bottom: 30px;">今日已完成新建课堂 <%= @today_course_num %> 个;</p>
|
12
12
|
<p>2、【市场活动-新客户注册】</p>
|
13
|
-
<p
|
14
|
-
<p
|
15
|
-
<p style="margin-bottom: 30px;"
|
13
|
+
<p>本月目标 ** 人;</p>
|
14
|
+
<p>累计完成 <%= @total_users_num %> 人;</p>
|
15
|
+
<p style="margin-bottom: 30px;">今日已完成转化注册 <%= @today_users_num %> 人;</p>
|
16
16
|
<p>3、课程建设-新型态教材合作】</p>
|
17
|
-
<p
|
18
|
-
<p
|
19
|
-
<p style="margin-bottom: 30px;"
|
17
|
+
<p>本月目标 ** 门课程(教材);</p>
|
18
|
+
<p>累计完成 ** 门课程(教材);</p>
|
19
|
+
<p style="margin-bottom: 30px;">今日已完成挖掘 ** 门课程(教材);</p>
|
20
20
|
<p>二、客户跟进情况</p>
|
21
21
|
<p style="margin-bottom: 30px;">(填写每日重点客户沟通内容,可涵盖总部安排的重要工作事项) </p>
|
22
22
|
<p>三、商机与项目线索</p>
|
23
23
|
<p style="margin-bottom: 30px;">(在运营过程中发现的商机以及小toB非招标项目商机:saas课程、在线考试等)</p>
|
24
24
|
<p>四、需要协助支持事宜</p>
|
25
|
-
<p style="margin-bottom: 30px;">1
|
25
|
+
<p style="margin-bottom: 30px;">1、需支持运营目标院校 ** 学校,教师注册量 ** 人,活跃用户 ** 人,待运营 ** 人;</p>
|
26
26
|
</div>
|
27
27
|
|
28
28
|
<% text = "\n" %>
|
29
29
|
<% text += "一、数据指标\n" %>
|
30
30
|
<% text += "1、【教师合作-老客户运营】\n" %>
|
31
|
-
<% text += "
|
32
|
-
<% text += "
|
33
|
-
<% text += "
|
34
|
-
<% text += "
|
31
|
+
<% text += "本月目标 ** 人;\n" %>
|
32
|
+
<% text += "累计完成 #{@total_teachers_num} 人;\n" %>
|
33
|
+
<% text += "今日已完成沟通 #{@today_teacher_num} 人;\n" %>
|
34
|
+
<% text += "今日已完成新建课堂 #{@today_course_num } 个;\n\n" %>
|
35
35
|
<% text += "2、【市场活动-新客户注册】\n" %>
|
36
|
-
<% text += "
|
37
|
-
<% text += "
|
38
|
-
<% text += "
|
36
|
+
<% text += "本月目标 ** 人\n" %>
|
37
|
+
<% text += "累计完成 #{@total_users_num} 人\n" %>
|
38
|
+
<% text += "今日已完成转化注册 #{@today_users_num} 人\n\n" %>
|
39
39
|
<% text += "3、课程建设-新型态教材合作】\n" %>
|
40
40
|
<% text += "本月目标**门课程(教材);\n" %>
|
41
41
|
<% text += "累计完成**门课程(教材);\n" %>
|
@@ -45,7 +45,7 @@
|
|
45
45
|
<% text += "三、商机与项目线索\n" %>
|
46
46
|
<% text += "(在运营过程中发现的商机以及小toB非招标项目商机:saas课程、在线考试等)\n\n" %>
|
47
47
|
<% text += "四、需要协助支持事宜\n" %>
|
48
|
-
<% text += "1
|
48
|
+
<% text += "1、需支持运营目标院校 ** 学校,教师注册量 ** 人,活跃用户 ** 人,待运营 ** 人;\n\n" %>
|
49
49
|
<% text += "头歌营销系统 \n"%>
|
50
50
|
<% text += "#{Time.now.to_s}"%>
|
51
51
|
<div id="content" style="display: none;" data-content="生态经理日报-转正后<%=text %>"></div>
|
@@ -116,16 +116,32 @@
|
|
116
116
|
</dl>
|
117
117
|
</li>
|
118
118
|
<% if can?(:show, EducodeSales::AssessmentsSetting) || can?(:show_result, EducodeSales::AssessmentsSetting) %>
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
<
|
123
|
-
|
124
|
-
|
119
|
+
<li class="layui-nav-item layui-nav-itemed menu-li">
|
120
|
+
<a class="" href="javascript:;"><b><%= image_tag "educode_sales/1.销售活动.png", size: "15" %>
|
121
|
+
<i style="padding-right: 25px"></i>绩效管理</b></a>
|
122
|
+
<dl class="layui-nav-child">
|
123
|
+
<dd>
|
124
|
+
<a href="/missions/assessments" class="<%= current?('layui-this', assessments_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/assessment.png", size: "15" %>
|
125
|
+
<i style="font-size: 25px; padding-right: 15px"></i>绩效考核</a></dd>
|
126
|
+
</dl>
|
127
|
+
</li>
|
128
|
+
<li class="layui-nav-item layui-nav-itemed menu-li">
|
129
|
+
<a class="" href="javascript:;"><b><%= image_tag "educode_sales/11.活动运营.png", size: "15" %>
|
130
|
+
<i style="font-size: 25px; padding-right: 25px"></i>方案支撑</b></a>
|
131
|
+
<dl class="layui-nav-child">
|
132
|
+
<dd>
|
133
|
+
<a href="/missions/ideas" class="<%= current?('layui-this', ideas_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/6.销售计划.png", size: "15" %>
|
134
|
+
<i style="font-size: 25px; padding-right: 15px"></i>方案管理</a></dd>
|
135
|
+
<dd>
|
136
|
+
<a href="/missions/idea_recycles" class="<%= current?('layui-this', idea_recycles_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/回收站.png", size: "15" %>
|
137
|
+
<i style="font-size: 25px; padding-right: 15px"></i>方案回收站</a></dd>
|
138
|
+
</dl>
|
139
|
+
</li>
|
125
140
|
<% end %>
|
126
141
|
<% if @current_admin.is_admin || @current_admin.code == 'userbe' %>
|
127
142
|
<li class="layui-nav-item layui-nav-itemed menu-li">
|
128
|
-
<a class="" href="javascript:;"><b><%= image_tag "educode_sales/13.系统设置.png",size:"15"
|
143
|
+
<a class="" href="javascript:;"><b><%= image_tag "educode_sales/13.系统设置.png", size: "15" %>
|
144
|
+
<i style="font-size: 25px; padding-right: 25px"></i>系统设置</b></a>
|
129
145
|
<dl class="layui-nav-child">
|
130
146
|
<% if @current_admin.is_admin %>
|
131
147
|
<dd>
|
@@ -149,19 +165,6 @@
|
|
149
165
|
</dl>
|
150
166
|
</li>
|
151
167
|
<% end %>
|
152
|
-
|
153
|
-
<li class="layui-nav-item layui-nav-itemed menu-li">
|
154
|
-
<a class="" href="javascript:;"><b><%= image_tag "educode_sales/11.活动运营.png", size: "15" %>
|
155
|
-
<i style="font-size: 25px; padding-right: 25px"></i>方案支撑</b></a>
|
156
|
-
<dl class="layui-nav-child">
|
157
|
-
<dd>
|
158
|
-
<a href="/missions/ideas" class="<%= current?('layui-this', ideas_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/6.销售计划.png", size: "15" %>
|
159
|
-
<i style="font-size: 25px; padding-right: 15px"></i>方案管理</a></dd>
|
160
|
-
<dd>
|
161
|
-
<a href="/missions/idea_recycles" class="<%= current?('layui-this', idea_recycles_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/回收站.png", size: "15" %>
|
162
|
-
<i style="font-size: 25px; padding-right: 15px"></i>方案回收站</a></dd>
|
163
|
-
</dl>
|
164
|
-
</li>
|
165
168
|
</ul>
|
166
169
|
</div>
|
167
170
|
</div>
|
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: educode_sales
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.51
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2023-03-02 00:00:00.000000000 Z
|
@@ -105,7 +105,6 @@ files:
|
|
105
105
|
- app/assets/images/educode_sales/icon-login.png
|
106
106
|
- app/assets/images/educode_sales/icon.png
|
107
107
|
- app/assets/images/educode_sales/indexLogo.png
|
108
|
-
- app/assets/images/educode_sales/indexlogo.png
|
109
108
|
- app/assets/images/educode_sales/loading-0.gif
|
110
109
|
- app/assets/images/educode_sales/loading-1.gif
|
111
110
|
- app/assets/images/educode_sales/loading-2.gif
|
@@ -566,7 +565,7 @@ homepage: https://www.educoder.net
|
|
566
565
|
licenses:
|
567
566
|
- MIT
|
568
567
|
metadata: {}
|
569
|
-
post_install_message:
|
568
|
+
post_install_message:
|
570
569
|
rdoc_options: []
|
571
570
|
require_paths:
|
572
571
|
- lib
|
@@ -581,8 +580,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
581
580
|
- !ruby/object:Gem::Version
|
582
581
|
version: '0'
|
583
582
|
requirements: []
|
584
|
-
rubygems_version: 3.0.
|
585
|
-
signing_key:
|
583
|
+
rubygems_version: 3.0.0
|
584
|
+
signing_key:
|
586
585
|
specification_version: 4
|
587
586
|
summary: Summary of EducodeSales.
|
588
587
|
test_files: []
|
Binary file
|