educode_sales 0.3.8 → 0.4.2
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/indexlogo.png +0 -0
- data/app/assets/javascripts/educode_sales/extent/xm-select.js +8 -0
- data/app/controllers/educode_sales/businesses_controller.rb +14 -4
- data/app/controllers/educode_sales/follow_ups_controller.rb +9 -0
- data/app/controllers/educode_sales/home_controller.rb +10 -1
- data/app/controllers/educode_sales/import_teachers_controller.rb +68 -0
- data/app/controllers/educode_sales/operation_plans_controller.rb +2 -2
- data/app/controllers/educode_sales/operation_reports_controller.rb +2 -2
- data/app/controllers/educode_sales/places_controller.rb +1 -0
- data/app/controllers/educode_sales/plans_controller.rb +2 -2
- data/app/controllers/educode_sales/sale_reports_controller.rb +2 -2
- data/app/controllers/educode_sales/sale_trends_controller.rb +8 -6
- data/app/controllers/educode_sales/sales_controller.rb +1 -0
- data/app/controllers/educode_sales/teachers_controller.rb +24 -12
- data/app/models/educode_sales/assign_follow_up.rb +6 -0
- data/app/models/educode_sales/follow_up.rb +1 -0
- data/app/models/educode_sales/teacher.rb +1 -1
- data/app/models/educode_sales/teacher_follow.rb +1 -0
- data/app/views/educode_sales/activities/edit.html.erb +0 -1
- data/app/views/educode_sales/activities/index.html.erb +20 -1
- data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
- data/app/views/educode_sales/businesses/edit.html.erb +2 -2
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +43 -1
- data/app/views/educode_sales/businesses/index.html.erb +12 -5
- data/app/views/educode_sales/businesses/index.json.jbuilder +3 -0
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +45 -13
- data/app/views/educode_sales/businesses/show_follow.html.erb +12 -5
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +6 -0
- data/app/views/educode_sales/commons/edit.html.erb +0 -1
- data/app/views/educode_sales/commons/index.html.erb +1 -0
- data/app/views/educode_sales/home/sales_staff.json.jbuilder +9 -0
- data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +2 -2
- data/app/views/educode_sales/operation_plans/_monthly.html.erb +3 -2
- data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +2 -1
- data/app/views/educode_sales/operation_plans/_weekly.html.erb +4 -2
- data/app/views/educode_sales/operation_plans/edit_week.html.erb +1 -0
- data/app/views/educode_sales/operation_plans/new_month.html.erb +2 -0
- data/app/views/educode_sales/operation_reports/edit.html.erb +27 -1
- data/app/views/educode_sales/places/edit.html.erb +0 -2
- data/app/views/educode_sales/places/index.html.erb +1 -0
- data/app/views/educode_sales/places/index.json.jbuilder +3 -3
- data/app/views/educode_sales/places/new.html.erb +0 -1
- data/app/views/educode_sales/plans/_monthPlan.html.erb +2 -2
- data/app/views/educode_sales/plans/_monthly.html.erb +2 -1
- data/app/views/educode_sales/plans/_weekPlan.html.erb +2 -1
- data/app/views/educode_sales/plans/_weekly.html.erb +3 -1
- data/app/views/educode_sales/plans/new_month.html.erb +1 -0
- data/app/views/educode_sales/roles/edit.html.erb +0 -1
- data/app/views/educode_sales/roles/index.html.erb +1 -1
- data/app/views/educode_sales/sale_reports/edit.html.erb +26 -0
- data/app/views/educode_sales/sales/index.html.erb +1 -0
- data/app/views/educode_sales/sales/index.json.jbuilder +2 -2
- data/app/views/educode_sales/sales/operations.html.erb +1 -0
- data/app/views/educode_sales/sales/trends.html.erb +0 -4
- data/app/views/educode_sales/staffs/index.html.erb +1 -0
- data/app/views/educode_sales/teachers/add_courses.html.erb +0 -1
- data/app/views/educode_sales/teachers/import.html.erb +41 -0
- data/app/views/educode_sales/teachers/index.html.erb +21 -4
- data/app/views/educode_sales/teachers/index.json.jbuilder +2 -3
- data/app/views/educode_sales/teachers/new.html.erb +0 -1
- data/app/views/educode_sales/teachers/show_follow.json.jbuilder +3 -2
- data/app/views/layouts/educode_sales/login.html.erb +1 -1
- data/config/routes.rb +5 -0
- data/db/migrate/20211013060712_create_educode_sales_assign_follow_ups.rb +10 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +8 -2
@@ -1,7 +1,12 @@
|
|
1
1
|
<script type="text/html" id="newWeeklyToolbar">
|
2
2
|
<div class="layui-btn-container">
|
3
|
+
{{# if(parent.from_edit_monthly){ }}
|
4
|
+
<span class="table-label">本月计划列表</span>
|
5
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add_month"> 添加计划</button>
|
6
|
+
{{# } else { }}
|
3
7
|
<span class="table-label">本周计划列表</span>
|
4
8
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加计划</button>
|
9
|
+
{{# } }}
|
5
10
|
</div>
|
6
11
|
</script>
|
7
12
|
<form class="layui-form layui-form-pane">
|
@@ -162,6 +167,27 @@
|
|
162
167
|
$(window).on("resize", function () {
|
163
168
|
layer.full(sindex);
|
164
169
|
});
|
170
|
+
}else if (obj.event === 'add_month') { // 监听添加操作
|
171
|
+
from_weekly = true;
|
172
|
+
var content = miniPage.getHrefContent('/missions/operation_plans/new_month');
|
173
|
+
var openWH = miniPage.getOpenWidthHeight();
|
174
|
+
sindex = layer.open({
|
175
|
+
title: '添加计划',
|
176
|
+
type: 1,
|
177
|
+
shade: 0.2,
|
178
|
+
maxmin: true,
|
179
|
+
shadeClose: true,
|
180
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
181
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
182
|
+
content: content,
|
183
|
+
success: function (layero, index) {
|
184
|
+
// 重新渲染弹层中的下拉选择框select
|
185
|
+
form.render('select');
|
186
|
+
}
|
187
|
+
});
|
188
|
+
$(window).on("resize", function () {
|
189
|
+
layer.full(sindex);
|
190
|
+
});
|
165
191
|
}
|
166
192
|
});
|
167
193
|
table.on('tool(newWeeklyTable)', function (obj) {
|
@@ -196,7 +222,7 @@
|
|
196
222
|
from_sales = true;
|
197
223
|
content = miniPage.getHrefContent('/missions/operation_plans/edit_week?id=' + id);
|
198
224
|
openWH = miniPage.getOpenWidthHeight();
|
199
|
-
|
225
|
+
edit_week_index = layer.open({
|
200
226
|
title: '编辑',
|
201
227
|
type: 1,
|
202
228
|
shade: 0.2,
|
@@ -75,9 +75,7 @@
|
|
75
75
|
return false;
|
76
76
|
}
|
77
77
|
data.field['area_ids'] = area_ids;
|
78
|
-
console.log(data.field);
|
79
78
|
request.authPut("missions/places/" + data.field.id, data.field, function (res) {
|
80
|
-
console.log(res.success == false)
|
81
79
|
if (res.success == false) {
|
82
80
|
layer.alert(res.msg)
|
83
81
|
} else {
|
@@ -3,9 +3,9 @@ json.data do
|
|
3
3
|
json.id d.id
|
4
4
|
json.name d.name
|
5
5
|
json.area_id d.areas.present? ? d.areas.pluck(:name).join("、") : ''
|
6
|
-
json.businesses_count EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.place_id = #{d.id}").count
|
7
|
-
json.amount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.place_id = #{d.id} AND educode_sales_follow_ups.stage_id IN (?)", @stage_ids).sum(:profit_amount).round(2)
|
8
|
-
json.return_mount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.place_id = #{d.id}").sum(:return_money)
|
6
|
+
json.businesses_count EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", @x).where("educode_sales_follow_ups.place_id = #{d.id}").count
|
7
|
+
json.amount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", @x).where("educode_sales_follow_ups.place_id = #{d.id} AND educode_sales_follow_ups.stage_id IN (?)", @stage_ids).sum(:profit_amount).round(2)
|
8
|
+
json.return_mount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", @x).where("educode_sales_follow_ups.place_id = #{d.id}").sum(:return_money).round(2)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -133,7 +133,7 @@
|
|
133
133
|
},
|
134
134
|
{
|
135
135
|
title: '操作',
|
136
|
-
minWidth:
|
136
|
+
minWidth: 200,
|
137
137
|
toolbar: '#week_plan_currentTableBar',
|
138
138
|
align: "center",
|
139
139
|
fixed: 'right'
|
@@ -142,6 +142,7 @@
|
|
142
142
|
],
|
143
143
|
|
144
144
|
limit: 20,
|
145
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
145
146
|
page: true,
|
146
147
|
});
|
147
148
|
|
@@ -258,7 +259,6 @@
|
|
258
259
|
});
|
259
260
|
} else if (obj.event === 'delete') {
|
260
261
|
layer.confirm('确定删除' + data.id, function (index) {
|
261
|
-
console.log("aaaaa");
|
262
262
|
request.delete('missions/plans/' + data.id, {}, function (res) {
|
263
263
|
layer.close(index);
|
264
264
|
table.reload("monthPlanTable")
|
@@ -136,7 +136,7 @@
|
|
136
136
|
},
|
137
137
|
{
|
138
138
|
title: '操作',
|
139
|
-
|
139
|
+
minWidth: 220,
|
140
140
|
toolbar: '#currentmonthlyTableBar',
|
141
141
|
align: "center",
|
142
142
|
fixed: 'right'
|
@@ -171,6 +171,7 @@
|
|
171
171
|
},
|
172
172
|
|
173
173
|
limit: 20,
|
174
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
174
175
|
page: true
|
175
176
|
});
|
176
177
|
|
@@ -138,7 +138,7 @@
|
|
138
138
|
},
|
139
139
|
{
|
140
140
|
title: '操作',
|
141
|
-
minWidth:
|
141
|
+
minWidth: 200,
|
142
142
|
toolbar: '#week_plan_currentTableBar',
|
143
143
|
align: "center",
|
144
144
|
fixed: 'right'
|
@@ -147,6 +147,7 @@
|
|
147
147
|
],
|
148
148
|
|
149
149
|
limit: 20,
|
150
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
150
151
|
page: true,
|
151
152
|
skin: 'line'
|
152
153
|
});
|
@@ -138,7 +138,7 @@
|
|
138
138
|
},
|
139
139
|
{
|
140
140
|
title: '操作',
|
141
|
-
|
141
|
+
minWidth: 220,
|
142
142
|
toolbar: '#currentWeeklyTableBar',
|
143
143
|
align: "center",
|
144
144
|
fixed: 'right'
|
@@ -172,6 +172,7 @@
|
|
172
172
|
},
|
173
173
|
|
174
174
|
limit: 20,
|
175
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
175
176
|
page: true
|
176
177
|
});
|
177
178
|
|
@@ -243,6 +244,7 @@
|
|
243
244
|
if (obj.event === 'edit') {
|
244
245
|
var content = miniPage.getHrefContent('/missions/sale_reports/' + data.id + "/edit");
|
245
246
|
var openWH = miniPage.getOpenWidthHeight();
|
247
|
+
from_edit_monthly = false
|
246
248
|
sindex = layer.open({
|
247
249
|
title: '编辑周报',
|
248
250
|
type: 1,
|
@@ -48,6 +48,7 @@
|
|
48
48
|
}]
|
49
49
|
],
|
50
50
|
limit: 20,
|
51
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
51
52
|
page: true
|
52
53
|
})
|
53
54
|
|
@@ -60,7 +61,6 @@
|
|
60
61
|
var value = obj.value //得到修改后的值
|
61
62
|
,data = obj.data //得到所在行所有键值
|
62
63
|
,field = obj.field; //得到字段
|
63
|
-
console.log(obj.data);
|
64
64
|
request.authPut('missions/roles/' + data.id + '/update_role/', data,
|
65
65
|
function(res) {
|
66
66
|
if (res.success) {
|
@@ -1,7 +1,12 @@
|
|
1
1
|
<script type="text/html" id="newWeeklyToolbar">
|
2
2
|
<div class="layui-btn-container">
|
3
|
+
{{# if(parent.from_edit_monthly){ }}
|
4
|
+
<span class="table-label">本月计划列表</span>
|
5
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add_month"> 添加计划</button>
|
6
|
+
{{# } else { }}
|
3
7
|
<span class="table-label">本周计划列表</span>
|
4
8
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加计划</button>
|
9
|
+
{{# } }}
|
5
10
|
</div>
|
6
11
|
</script>
|
7
12
|
<form class="layui-form layui-form-pane">
|
@@ -168,6 +173,27 @@
|
|
168
173
|
$(window).on("resize", function () {
|
169
174
|
layer.full(sindex);
|
170
175
|
});
|
176
|
+
}else if (obj.event === 'add_month') { // 监听添加操作
|
177
|
+
from_weekly = true;
|
178
|
+
var content = miniPage.getHrefContent('/missions/plans/new_month');
|
179
|
+
var openWH = miniPage.getOpenWidthHeight();
|
180
|
+
sindex = layer.open({
|
181
|
+
title: '添加计划',
|
182
|
+
type: 1,
|
183
|
+
shade: 0.2,
|
184
|
+
maxmin: true,
|
185
|
+
shadeClose: true,
|
186
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
187
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
188
|
+
content: content,
|
189
|
+
success: function (layero, index) {
|
190
|
+
// 重新渲染弹层中的下拉选择框select
|
191
|
+
form.render('select');
|
192
|
+
}
|
193
|
+
});
|
194
|
+
$(window).on("resize", function () {
|
195
|
+
layer.full(sindex);
|
196
|
+
});
|
171
197
|
}
|
172
198
|
});
|
173
199
|
table.on('tool(newWeeklyTable)', function (obj) {
|
@@ -6,8 +6,8 @@ json.data do
|
|
6
6
|
json.area d.areas.present? ? d.areas.pluck(:name).join("、") : ''
|
7
7
|
json.business_a d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @a_clazz&.id).count
|
8
8
|
json.business_b d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @b_clazz&.id).count
|
9
|
-
json.goal d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.stage_id in (?)", @step_ids).sum(:total_amount).round(2)
|
10
|
-
json.return_money d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").sum("educode_sales_businesses.return_money")
|
9
|
+
json.goal d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.stage_id in (?)", @x, @step_ids).sum(:total_amount).round(2)
|
10
|
+
json.return_money d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id != ?", @x).sum("educode_sales_businesses.return_money").round(2)
|
11
11
|
json.a_clazz_id @a_clazz&.id
|
12
12
|
json.b_clazz_id @b_clazz&.id
|
13
13
|
end
|
@@ -177,7 +177,6 @@
|
|
177
177
|
}
|
178
178
|
})
|
179
179
|
$("#" + el).blur(function () {
|
180
|
-
console.log(this.value)
|
181
180
|
if (this.value == '') {
|
182
181
|
layer.msg("不能为空")
|
183
182
|
} else {
|
@@ -185,13 +184,11 @@
|
|
185
184
|
data[el] = this.value;
|
186
185
|
var self = this;
|
187
186
|
data['year'] = year;
|
188
|
-
console.log(data, $("#years").value, year)
|
189
187
|
request.post( '/missions/sales/sale_trends',
|
190
188
|
data,
|
191
189
|
function(res) {
|
192
190
|
$("#" + el + "_field").addClass("layui-hide");
|
193
191
|
$("#" + el + "_value").removeClass("layui-hide");
|
194
|
-
console.log(self.value)
|
195
192
|
$("#" + el + "_value")[0].innerText = self.value + "万";
|
196
193
|
}
|
197
194
|
)
|
@@ -200,7 +197,6 @@
|
|
200
197
|
}
|
201
198
|
|
202
199
|
form.on('select(year)', function(data){
|
203
|
-
console.log(data, )
|
204
200
|
year = data.value
|
205
201
|
window.location.href = "/missions/sales/trends?year=" + data.value
|
206
202
|
})
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<div style="padding-left: 50px">
|
2
|
+
<button type="button" class="layui-btn" id="test3"><i class="layui-icon"></i>选择文件</button>
|
3
|
+
</div>
|
4
|
+
<script>
|
5
|
+
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput'], function () {
|
6
|
+
var form = layui.form,
|
7
|
+
layer = layui.layer,
|
8
|
+
table = layui.table,
|
9
|
+
laytpl = layui.laytpl,
|
10
|
+
upload = layui.upload,
|
11
|
+
request = layui.request,
|
12
|
+
$ = layui.$;
|
13
|
+
selectInput = layui.selectInput;
|
14
|
+
|
15
|
+
form.render();
|
16
|
+
|
17
|
+
//指定允许上传的文件类型
|
18
|
+
upload.render({
|
19
|
+
elem: '#test3'
|
20
|
+
,url: '/missions/import_teachers' //此处配置你自己的上传接口即可
|
21
|
+
,accept: 'file', //普通文件
|
22
|
+
headers: {
|
23
|
+
'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
|
24
|
+
}
|
25
|
+
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
|
26
|
+
layer.load(); //上传loading
|
27
|
+
}
|
28
|
+
,done: function(res){
|
29
|
+
layer.msg('导入成功');
|
30
|
+
table.reload('teachers_table');
|
31
|
+
table.reload('activities_table');
|
32
|
+
layer.close(parent.import_index)
|
33
|
+
layer.closeAll('loading'); //关闭loading
|
34
|
+
}
|
35
|
+
,error: function(index, upload){
|
36
|
+
layer.closeAll('loading'); //关闭loading
|
37
|
+
layer.alert('导入失败,请检查文件格式')
|
38
|
+
}
|
39
|
+
});
|
40
|
+
});
|
41
|
+
</script>
|
@@ -65,8 +65,9 @@
|
|
65
65
|
<div class="layui-btn-container">
|
66
66
|
<span class="table-label">教师列表</span>
|
67
67
|
<% if can? :create, EducodeSales::Teacher %>
|
68
|
-
|
69
|
-
|
68
|
+
<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">添加</button>
|
70
|
+
<% end %>
|
70
71
|
<!-- <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="search_new"> 搜索添加 -->
|
71
72
|
</button>
|
72
73
|
</div>
|
@@ -235,6 +236,7 @@
|
|
235
236
|
],
|
236
237
|
|
237
238
|
limit: 20,
|
239
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
238
240
|
page: true,
|
239
241
|
done: function (res) {
|
240
242
|
drowpdwonRender()
|
@@ -260,7 +262,7 @@
|
|
260
262
|
edit(id);
|
261
263
|
break;
|
262
264
|
case 'delete':
|
263
|
-
deleteBusiness(id, elem.data
|
265
|
+
deleteBusiness(id, elem.data('name'));
|
264
266
|
break;
|
265
267
|
}
|
266
268
|
}
|
@@ -347,7 +349,6 @@
|
|
347
349
|
// 监听搜索操作
|
348
350
|
form.on('submit(search_teachers)', function (data) {
|
349
351
|
search = data.field
|
350
|
-
console.log(search);
|
351
352
|
table.reload('teachers_table', {
|
352
353
|
page: {
|
353
354
|
curr: 1
|
@@ -391,6 +392,22 @@
|
|
391
392
|
$(window).on("resize", function () {
|
392
393
|
layer.full(index);
|
393
394
|
});
|
395
|
+
}else if (obj.event === 'import') { //
|
396
|
+
var content = miniPage.getHrefContent('/missions/teachers/import');
|
397
|
+
var openWH = miniPage.getOpenWidthHeight();
|
398
|
+
import_index = layer.open({
|
399
|
+
title: '导入数据',
|
400
|
+
type: 1,
|
401
|
+
shade: 0.2,
|
402
|
+
shadeClose: true,
|
403
|
+
area: ['200px', '100px'],
|
404
|
+
offset: 'auto',
|
405
|
+
closeBtn: 0,
|
406
|
+
content: content,
|
407
|
+
});
|
408
|
+
$(window).on("resize", function () {
|
409
|
+
layer.full(index);
|
410
|
+
});
|
394
411
|
} else if (obj.event === 'search_new') { // 搜索添加
|
395
412
|
content = miniPage.getHrefContent('/missions/teachers/search_new');
|
396
413
|
openWH = miniPage.getOpenWidthHeight();
|
@@ -12,9 +12,8 @@ json.data do
|
|
12
12
|
json.teacher_follows_count d.teacher_follows_count
|
13
13
|
json.activities_count d.activity_teachers_count
|
14
14
|
json.source EducodeSales::Common.teacher_source_name[d.source_id]
|
15
|
-
|
16
|
-
json.
|
17
|
-
json.courses_count d.user_id ? Course.joins(:course_members).where(course_members: {user_id: d.user_id}).distinct("course_id").count : 0
|
15
|
+
json.attitude d.follow_up&.attitude&.name
|
16
|
+
json.courses_count d.user_id ? Course.joins(:course_members).where(course_members: {user_id: d.user_id}).where("is_delete = 0 and role != 4 and excellent = 0 and is_hidden = 0").where("start_date is null or start_date <= '#{Date.today}'").distinct(:course_id).count : 0
|
18
17
|
json.actives d.actives
|
19
18
|
json.students d.students_count
|
20
19
|
json.regist_at d.user.present? ? d.user.created_on.to_s(:date) : ''
|
@@ -8,8 +8,9 @@ json.data do
|
|
8
8
|
json.course_build EducodeSales::Common.find_by(id: d.course_build_id).name
|
9
9
|
json.contact EducodeSales::Common.find_by(id: d.follow_id).name
|
10
10
|
json.staff d.staff.user.real_name
|
11
|
-
json.students_count d.students_count
|
12
|
-
json.courses_count Course.joins(:course_members).where(course_members: {user_id: d.teacher&.user_id}).distinct("course_id").count
|
11
|
+
json.students_count d.teacher&.students_count
|
12
|
+
# json.courses_count Course.joins(:course_members).where(course_members: {user_id: d.teacher&.user_id}).distinct("course_id").count
|
13
|
+
json.courses_count Course.joins(:course_members).where(course_members: {user_id: d.teacher&.user_id}).where("is_delete = 0 and role != 4 and excellent = 0 and is_hidden = 0").where("start_date is null or start_date <= '#{Date.today}'").distinct(:course_id).count
|
13
14
|
json.evaluates_count d.evaluates_count
|
14
15
|
json.course_shixuns_count d.course_shixuns_count
|
15
16
|
json.shixuns_count d.shixuns_count
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<title><%= @title || '头歌营销系统' %></title>
|
6
6
|
<%= csrf_meta_tags %>
|
7
7
|
<%= csp_meta_tag %>
|
8
|
-
<%= favicon_link_tag "educode_sales/
|
8
|
+
<%= favicon_link_tag "educode_sales/logo.png" %>
|
9
9
|
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
|
10
10
|
<%= stylesheet_link_tag "educode_sales/application", media: "all" %>
|
11
11
|
<%= javascript_include_tag "educode_sales/application" %>
|
data/config/routes.rb
CHANGED
@@ -9,6 +9,7 @@ EducodeSales::Engine.routes.draw do
|
|
9
9
|
get :search_edu_teacher,to: "home#search_edu_teacher"
|
10
10
|
get :search, to: "home#search"
|
11
11
|
get :no_permission, to: "home#no_permission"
|
12
|
+
get :sales_staff, to: "home#sales_staff"
|
12
13
|
|
13
14
|
resources :sessions do
|
14
15
|
end
|
@@ -110,8 +111,12 @@ EducodeSales::Engine.routes.draw do
|
|
110
111
|
end
|
111
112
|
end
|
112
113
|
|
114
|
+
|
115
|
+
resources :import_teachers
|
116
|
+
|
113
117
|
resources :teachers do
|
114
118
|
collection do
|
119
|
+
get :import
|
115
120
|
get :add_keys
|
116
121
|
get :search_new
|
117
122
|
get :add_courses
|
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
|
+
version: 0.4.2
|
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-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- app/assets/javascripts/educode_sales/extent/miniPage.js
|
97
97
|
- app/assets/javascripts/educode_sales/extent/request.js
|
98
98
|
- app/assets/javascripts/educode_sales/extent/select_input.js
|
99
|
+
- app/assets/javascripts/educode_sales/extent/xm-select.js
|
99
100
|
- app/assets/javascripts/educode_sales/layui.js
|
100
101
|
- app/assets/stylesheets/educode_sales/app.css
|
101
102
|
- app/assets/stylesheets/educode_sales/application.css
|
@@ -120,6 +121,7 @@ files:
|
|
120
121
|
- app/controllers/educode_sales/commons_controller.rb
|
121
122
|
- app/controllers/educode_sales/follow_ups_controller.rb
|
122
123
|
- app/controllers/educode_sales/home_controller.rb
|
124
|
+
- app/controllers/educode_sales/import_teachers_controller.rb
|
123
125
|
- app/controllers/educode_sales/key_person_controller.rb
|
124
126
|
- app/controllers/educode_sales/operation_plans_controller.rb
|
125
127
|
- app/controllers/educode_sales/operation_reports_controller.rb
|
@@ -146,6 +148,7 @@ files:
|
|
146
148
|
- app/models/educode_sales/activity.rb
|
147
149
|
- app/models/educode_sales/activity_teacher.rb
|
148
150
|
- app/models/educode_sales/application_record.rb
|
151
|
+
- app/models/educode_sales/assign_follow_up.rb
|
149
152
|
- app/models/educode_sales/business.rb
|
150
153
|
- app/models/educode_sales/common.rb
|
151
154
|
- app/models/educode_sales/course_subject.rb
|
@@ -194,6 +197,7 @@ files:
|
|
194
197
|
- app/views/educode_sales/follow_ups/teachers.json.jbuilder
|
195
198
|
- app/views/educode_sales/home/index.html.erb
|
196
199
|
- app/views/educode_sales/home/no_permission.html.erb
|
200
|
+
- app/views/educode_sales/home/sales_staff.json.jbuilder
|
197
201
|
- app/views/educode_sales/home/search.json.jbuilder
|
198
202
|
- app/views/educode_sales/home/search_edu_teacher.json.jbuilder
|
199
203
|
- app/views/educode_sales/home/search_teacher.json.jbuilder
|
@@ -285,6 +289,7 @@ files:
|
|
285
289
|
- app/views/educode_sales/teachers/course_subject.json.jbuilder
|
286
290
|
- app/views/educode_sales/teachers/edit.html.erb
|
287
291
|
- app/views/educode_sales/teachers/edit_follow_record.html.erb
|
292
|
+
- app/views/educode_sales/teachers/import.html.erb
|
288
293
|
- app/views/educode_sales/teachers/index.html.erb
|
289
294
|
- app/views/educode_sales/teachers/index.json.jbuilder
|
290
295
|
- app/views/educode_sales/teachers/new.html.erb
|
@@ -327,6 +332,7 @@ files:
|
|
327
332
|
- db/migrate/20210915061738_add_students_count_teacher_follow_ups.rb
|
328
333
|
- db/migrate/20211009031109_add_tel_key_peoples.rb
|
329
334
|
- db/migrate/20211009063423_add_source_businesses.rb
|
335
|
+
- db/migrate/20211013060712_create_educode_sales_assign_follow_ups.rb
|
330
336
|
- lib/educode_sales.rb
|
331
337
|
- lib/educode_sales/engine.rb
|
332
338
|
- lib/educode_sales/version.rb
|