educode_sales 0.5.3 → 0.5.7
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 -0
- data/app/controllers/educode_sales/follow_ups_controller.rb +57 -0
- data/app/controllers/educode_sales/home_controller.rb +11 -0
- data/app/controllers/educode_sales/sale_trends_controller.rb +108 -84
- data/app/controllers/educode_sales/teachers_controller.rb +36 -14
- data/app/controllers/educode_sales/upload_files_controller.rb +3 -3
- data/app/models/educode_sales/teacher.rb +2 -1
- data/app/models/educode_sales/teacher_assign_follow.rb +6 -0
- data/app/views/educode_sales/activities/index.html.erb +4 -5
- data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
- data/app/views/educode_sales/businesses/_follows.html.erb +233 -0
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +59 -9
- data/app/views/educode_sales/businesses/file.html.erb +2 -4
- data/app/views/educode_sales/businesses/index.html.erb +137 -62
- data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +58 -7
- data/app/views/educode_sales/businesses/show_follow.html.erb +9 -9
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +1 -1
- data/app/views/educode_sales/businesses/time_line.html.erb +1 -1
- data/app/views/educode_sales/follow_ups/index.json.jbuilder +19 -0
- data/app/views/educode_sales/home/sales_place.json.jbuilder +9 -0
- data/app/views/educode_sales/places/index.html.erb +14 -4
- data/app/views/educode_sales/places/index.json.jbuilder +7 -1
- data/app/views/educode_sales/recycles/index.html.erb +1 -1
- data/app/views/educode_sales/sale_trends/trends.html.erb +56 -20
- data/app/views/educode_sales/sales/operations.html.erb +3 -1
- data/app/views/educode_sales/teachers/course_list.json.jbuilder +1 -1
- data/app/views/educode_sales/teachers/edit.html.erb +53 -7
- data/app/views/educode_sales/teachers/index.html.erb +36 -2
- data/app/views/educode_sales/teachers/index.json.jbuilder +4 -1
- data/app/views/educode_sales/teachers/new.html.erb +55 -17
- data/config/routes.rb +1 -0
- data/db/migrate/20211201023750_create_educode_sales_teacher_assign_follows.rb +11 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +7 -2
@@ -38,6 +38,12 @@
|
|
38
38
|
<input type="text" class="layui-input" id="time" placeholder="请选择时间" autocomplete="off" name="regist_at">
|
39
39
|
</div>
|
40
40
|
</div>
|
41
|
+
<div class="layui-inline">
|
42
|
+
<label class="layui-form-label">注册状态</label>
|
43
|
+
<div class="layui-input-inline">
|
44
|
+
<%= select_tag "status", options_for_select([["已注册","1"],["未注册","0"]]), { include_blank: true } %>
|
45
|
+
</div>
|
46
|
+
</div>
|
41
47
|
<div class="layui-inline">
|
42
48
|
<label class="layui-form-label">区域</label>
|
43
49
|
<div class="layui-input-inline">
|
@@ -50,6 +56,12 @@
|
|
50
56
|
<input type="text" class="layui-input" id="date" name="date" autocomplete="off" placeholder=" - ">
|
51
57
|
</div>
|
52
58
|
</div>
|
59
|
+
<div class="layui-inline">
|
60
|
+
<label class="layui-form-label">教研助理</label>
|
61
|
+
<div class="layui-input-inline">
|
62
|
+
<%= select_tag "assist", options_for_select(@staffs, params[:assist]), { 'lay-filter': 'assist', include_blank: true } %>
|
63
|
+
</div>
|
64
|
+
</div>
|
53
65
|
|
54
66
|
<div class="layui-inline">
|
55
67
|
<button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
|
@@ -66,7 +78,7 @@
|
|
66
78
|
<span class="table-label">教师列表</span>
|
67
79
|
<% if can? :create, EducodeSales::Teacher %>
|
68
80
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="import">导入数据</button>
|
69
|
-
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"
|
81
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add">添加老师</button>
|
70
82
|
<% end %>
|
71
83
|
<!-- <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="search_new"> 搜索添加 -->
|
72
84
|
</button>
|
@@ -86,7 +98,7 @@
|
|
86
98
|
<%# if can? :destroy, EducodeSales::Teacher %>
|
87
99
|
<!-- <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>-->
|
88
100
|
<%# end %>
|
89
|
-
<% if can? :
|
101
|
+
<% if can? :create, EducodeSales::TeacherFollow %>
|
90
102
|
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_event">添加跟进记录</a>
|
91
103
|
<% end %>
|
92
104
|
<% if @more %>
|
@@ -230,6 +242,26 @@
|
|
230
242
|
width: 120,
|
231
243
|
title: '注册时间',
|
232
244
|
},
|
245
|
+
{
|
246
|
+
field: 'last_login_on',
|
247
|
+
width: 120,
|
248
|
+
title: '最近登录',
|
249
|
+
},
|
250
|
+
{
|
251
|
+
field: 'created_at',
|
252
|
+
width: 120,
|
253
|
+
title: '添加时间',
|
254
|
+
},
|
255
|
+
{
|
256
|
+
field: 'wechat',
|
257
|
+
width: 120,
|
258
|
+
title: '微信号',
|
259
|
+
},
|
260
|
+
{
|
261
|
+
field: 'teacher_assist',
|
262
|
+
width: 120,
|
263
|
+
title: '教研助理',
|
264
|
+
},
|
233
265
|
{
|
234
266
|
title: '操作',
|
235
267
|
minWidth: 170,
|
@@ -372,7 +404,9 @@
|
|
372
404
|
name: "",
|
373
405
|
professional_title: "",
|
374
406
|
regist_at: "",
|
407
|
+
status: "",
|
375
408
|
school: "",
|
409
|
+
assist: "",
|
376
410
|
teacher_source: ""
|
377
411
|
})
|
378
412
|
return false;
|
@@ -19,8 +19,11 @@ json.data do
|
|
19
19
|
json.actives d.actives
|
20
20
|
json.students d.students_count
|
21
21
|
json.regist_at d.user.present? ? d.user.created_on.to_s(:date) : ''
|
22
|
+
json.last_login_on (d.user.present? && d.user.last_login_on.present?) ? d.user.last_login_on.to_s(:date) : ''
|
22
23
|
json.teacher_used d.teacher_used
|
23
|
-
|
24
|
+
json.wechat d.wechat
|
25
|
+
json.created_at d.created_at.to_s(:date)
|
26
|
+
json.teacher_assist d.teacher_assign_follows.map{|t| t.staff.user.real_name}.join(',')
|
24
27
|
teacher_follows_count += d.teacher_follows_count
|
25
28
|
courses_counts += d.courses_count
|
26
29
|
end
|
@@ -5,6 +5,8 @@
|
|
5
5
|
<label class="layui-form-label required">姓名</label>
|
6
6
|
<div class="layui-input-block" id="add_teacher" style="width: 400px"></div>
|
7
7
|
</div>
|
8
|
+
</div>
|
9
|
+
<div class="layui-block">
|
8
10
|
<div class="layui-inline">
|
9
11
|
<label class="layui-form-label required">单位/部门</label>
|
10
12
|
<div class="layui-input-block" id="add_department" style="width: 400px"></div>
|
@@ -12,34 +14,38 @@
|
|
12
14
|
</div>
|
13
15
|
<div class="layui-block">
|
14
16
|
<div class="layui-inline">
|
15
|
-
<label class="layui-form-label
|
17
|
+
<label class="layui-form-label ">职称</label>
|
16
18
|
<div class="layui-input-block">
|
17
|
-
<%= select_tag "professional_title", options_for_select(['教授', '研究员', '副教授', '副研究员', '讲师', '助理研究员', '助理教授'], @person&.professional_title), { include_blank: true
|
19
|
+
<%= select_tag "professional_title", options_for_select(['教授', '研究员', '副教授', '副研究员', '讲师', '助理研究员', '助理教授'], @person&.professional_title), { include_blank: true} %>
|
18
20
|
</div>
|
19
21
|
</div>
|
20
|
-
</div>
|
21
|
-
<div class="layui-block">
|
22
22
|
<div class="layui-inline">
|
23
|
-
<label class="layui-form-label
|
23
|
+
<label class="layui-form-label ">职务</label>
|
24
24
|
<div class="layui-input-block" style="width: 188px;">
|
25
|
-
<input type="text" name="job" autocomplete="off"
|
25
|
+
<input type="text" name="job" autocomplete="off" class="layui-input" placeholder="请输入职务">
|
26
26
|
</div>
|
27
27
|
</div>
|
28
28
|
</div>
|
29
29
|
<div class="layui-block">
|
30
30
|
<div class="layui-inline">
|
31
|
-
<label class="layui-form-label
|
31
|
+
<label class="layui-form-label ">来源</label>
|
32
|
+
<div class="layui-input-block">
|
33
|
+
<%= select_tag "source_id", options_for_select(EducodeSales::Common.where(clazz: 'teacher_source').pluck(:name, :id)), { include_blank: true } %>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
<div class="layui-inline">
|
37
|
+
<label class="layui-form-label ">微信号</label>
|
32
38
|
<div class="layui-input-block">
|
33
|
-
|
39
|
+
<input type="text" name="wechat" autocomplete="off" class="layui-input" placeholder="请输入微信号">
|
34
40
|
</div>
|
35
41
|
</div>
|
36
42
|
</div>
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
</div>
|
43
|
+
<div class="layui-form-item">
|
44
|
+
<label class="layui-form-label">教研助理</label>
|
45
|
+
<div class="layui-input-inline" style="z-index: 100">
|
46
|
+
<div id="teacher_assist" style="width: 400px;"></div>
|
47
|
+
</div>
|
48
|
+
</div>
|
43
49
|
<div class="layui-form-item m-t-20">
|
44
50
|
<div class="layui-input-block">
|
45
51
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="create_teachers"
|
@@ -47,9 +53,6 @@
|
|
47
53
|
</button>
|
48
54
|
</div>
|
49
55
|
</div>
|
50
|
-
<!-- <div class="layui-block">
|
51
|
-
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="create_teachers">提交</button>
|
52
|
-
</div> -->
|
53
56
|
</div>
|
54
57
|
</div>
|
55
58
|
<script>
|
@@ -58,12 +61,42 @@
|
|
58
61
|
layer = layui.layer,
|
59
62
|
table = layui.table,
|
60
63
|
laytpl = layui.laytpl,
|
64
|
+
xmSelect = layui.xmSelect,
|
61
65
|
request = layui.request,
|
62
66
|
$ = layui.$;
|
63
67
|
selectInput = layui.selectInput;
|
64
68
|
|
65
69
|
form.render();
|
66
70
|
|
71
|
+
var teacher_assist_list = xmSelect.render({
|
72
|
+
el: '#teacher_assist',
|
73
|
+
remoteSearch: true,
|
74
|
+
clickClose: true,
|
75
|
+
delay: 1000,
|
76
|
+
paging: true,
|
77
|
+
pageRemote: true,
|
78
|
+
filterable: true,
|
79
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
80
|
+
$.ajax( '/missions/sales_staff?teacher_assist=true', {
|
81
|
+
method: 'get',
|
82
|
+
data: {
|
83
|
+
q: val,
|
84
|
+
page: pageIndex
|
85
|
+
},
|
86
|
+
dataType: 'json',
|
87
|
+
success: function (res) {
|
88
|
+
var data = res.data;
|
89
|
+
if (res.code == 0) {
|
90
|
+
cb(res.data, res.count);
|
91
|
+
} else {
|
92
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
93
|
+
}
|
94
|
+
|
95
|
+
}
|
96
|
+
})
|
97
|
+
}
|
98
|
+
})
|
99
|
+
|
67
100
|
var add_teacher = selectInput.render({
|
68
101
|
elem: '#add_teacher',
|
69
102
|
name: 'name', // 渲染的input的name值
|
@@ -141,6 +174,11 @@
|
|
141
174
|
|
142
175
|
//监听提交
|
143
176
|
form.on('submit(create_teachers)', function (data) {
|
177
|
+
var teacher_assist = [];
|
178
|
+
teacher_assist_list.getValue().forEach(function(d) {
|
179
|
+
teacher_assist.push(d.value);
|
180
|
+
})
|
181
|
+
data.field.teacher_assist = teacher_assist;
|
144
182
|
data.field.user_id = user_id;
|
145
183
|
data.field.department_id = department_id;
|
146
184
|
data.field.activity_id = parent.activity_id;
|
data/config/routes.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
class CreateEducodeSalesTeacherAssignFollows < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :educode_sales_teacher_assign_follows do |t|
|
4
|
+
t.references :staff
|
5
|
+
t.references :teacher
|
6
|
+
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
add_column :educode_sales_teachers, :wechat, :string
|
10
|
+
end
|
11
|
+
end
|
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.5.
|
4
|
+
version: 0.5.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -192,12 +192,14 @@ files:
|
|
192
192
|
- app/models/educode_sales/sale_trend.rb
|
193
193
|
- app/models/educode_sales/staff.rb
|
194
194
|
- app/models/educode_sales/teacher.rb
|
195
|
+
- app/models/educode_sales/teacher_assign_follow.rb
|
195
196
|
- app/models/educode_sales/teacher_follow.rb
|
196
197
|
- app/views/educode_sales/activities/edit.html.erb
|
197
198
|
- app/views/educode_sales/activities/index.html.erb
|
198
199
|
- app/views/educode_sales/activities/index.json.jbuilder
|
199
200
|
- app/views/educode_sales/activities/new.html.erb
|
200
201
|
- app/views/educode_sales/activities/show_teachers.html.erb
|
202
|
+
- app/views/educode_sales/businesses/_follows.html.erb
|
201
203
|
- app/views/educode_sales/businesses/edit.html.erb
|
202
204
|
- app/views/educode_sales/businesses/edit_follow_record.html.erb
|
203
205
|
- app/views/educode_sales/businesses/edit_plan.html.erb
|
@@ -218,10 +220,12 @@ files:
|
|
218
220
|
- app/views/educode_sales/commons/index.json.jbuilder
|
219
221
|
- app/views/educode_sales/commons/new.html.erb
|
220
222
|
- app/views/educode_sales/commons/show.json.jbuilder
|
223
|
+
- app/views/educode_sales/follow_ups/index.json.jbuilder
|
221
224
|
- app/views/educode_sales/follow_ups/money_plans.json.jbuilder
|
222
225
|
- app/views/educode_sales/follow_ups/teachers.json.jbuilder
|
223
226
|
- app/views/educode_sales/home/index.html.erb
|
224
227
|
- app/views/educode_sales/home/no_permission.html.erb
|
228
|
+
- app/views/educode_sales/home/sales_place.json.jbuilder
|
225
229
|
- app/views/educode_sales/home/sales_staff.json.jbuilder
|
226
230
|
- app/views/educode_sales/home/search.json.jbuilder
|
227
231
|
- app/views/educode_sales/home/search_edu_teacher.json.jbuilder
|
@@ -377,6 +381,7 @@ files:
|
|
377
381
|
- db/migrate/20211022085324_add_teacher_used_to_teachers.rb
|
378
382
|
- db/migrate/20211102085743_add_bidded_date_educode_sales_follow_ups.rb
|
379
383
|
- db/migrate/20211109015617_create_educode_sales_recycles.rb
|
384
|
+
- db/migrate/20211201023750_create_educode_sales_teacher_assign_follows.rb
|
380
385
|
- lib/educode_sales.rb
|
381
386
|
- lib/educode_sales/engine.rb
|
382
387
|
- lib/educode_sales/version.rb
|