educode_sales 0.7.6 → 0.7.9
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/top_page.png +0 -0
- data/app/controllers/educode_sales/assessments_controller.rb +139 -282
- data/app/controllers/educode_sales/businesses_controller.rb +59 -1
- data/app/controllers/educode_sales/customers_controller.rb +0 -3
- data/app/helpers/educode_sales/application_helper.rb +3 -3
- data/app/models/educode_sales/business.rb +8 -0
- data/app/models/educode_sales/business_relation_ship.rb +6 -0
- data/app/models/educode_sales/customer_follow.rb +1 -0
- data/app/models/educode_sales/follow_up.rb +2 -0
- data/app/models/educode_sales/role_area.rb +1 -1
- data/app/views/educode_sales/assessments/_progress.html.erb +7 -4
- data/app/views/educode_sales/assessments/_setup.html.erb +54 -10
- data/app/views/educode_sales/assessments/edit.html.erb +47 -54
- data/app/views/educode_sales/assessments/index.html.erb +1 -2
- data/app/views/educode_sales/assessments/index.json.jbuilder +1 -1
- data/app/views/educode_sales/assessments/new.html.erb +148 -111
- data/app/views/educode_sales/assessments/progress.json.jbuilder +2 -198
- data/app/views/educode_sales/businesses/following_businesses.jbuilder +44 -0
- data/app/views/educode_sales/businesses/index.html.erb +122 -6
- data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +1 -1
- data/app/views/educode_sales/home/index.html.erb +1 -1
- data/app/views/educode_sales/plans/edit_month.html.erb +1 -1
- data/app/views/layouts/educode_sales/application.html.erb +1 -1
- data/config/routes.rb +3 -0
- data/db/migrate/20220419103842_add_column_timestamps_to_assessments_settings.rb +9 -0
- data/db/migrate/20220420071909_create_educode_sales_business_relation_ships.rb +10 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +7 -2
@@ -0,0 +1,44 @@
|
|
1
|
+
follow_up_ids = EducodeSales::AssignFollowUp.where(staff_id: @current_admin.id).pluck(:follow_up_id)
|
2
|
+
follow_count = 0
|
3
|
+
json.data do
|
4
|
+
json.array! @businesses do |d|
|
5
|
+
json.id d.id
|
6
|
+
json.name d.name
|
7
|
+
json.department d.department.name
|
8
|
+
json.school d.department.school.name
|
9
|
+
json.school_id d.department.school.id
|
10
|
+
follow_ups_count = d.follow_ups.where(deleted_at: nil).size
|
11
|
+
json.follow_ups_count follow_ups_count
|
12
|
+
follow_count += follow_ups_count
|
13
|
+
json.follow_up_id d.last_follow_up_id
|
14
|
+
json.clazz d.last_follow_up&.clazz&.name || ""
|
15
|
+
json.stage d.last_follow_up&.stage&.name
|
16
|
+
json.invitation_at d.last_follow_up&.invitation_at.to_s
|
17
|
+
json.reception_at d.last_follow_up&.reception_at.to_s
|
18
|
+
json.bidded_date d.last_follow_up&.bidded_date.to_s
|
19
|
+
json.signed_date d.last_follow_up&.signed_date.to_s
|
20
|
+
json.service_end_time d.last_follow_up&.service_start_time.to_s + "-" + d.last_follow_up&.service_end_time.to_s
|
21
|
+
json.year d.last_follow_up&.year.to_s
|
22
|
+
json.total_amount d.last_follow_up&.total_amount
|
23
|
+
json.actual_amount d.last_follow_up&.actual_amount
|
24
|
+
json.return_money d.return_money
|
25
|
+
json.wait_return_money d.wait_return_money.to_f.round(2)
|
26
|
+
json.return_money_days d.last_follow_up&.reception_at.present? && d.last_follow_up.money_plans.where(clazz: '实际回款').present? ? (d.last_follow_up.money_plans.where(clazz: '实际回款').order(created_at: :asc).first.date_at.to_s(:date).to_date - d.last_follow_up&.reception_at).to_i : ''
|
27
|
+
json.place d.last_follow_up&.place&.name
|
28
|
+
json.last_follow_person d.last_follow_up.present? ? d.last_follow_up.staff.user.real_name : EducodeSales::Staff.find(d.staff_id).user.real_name
|
29
|
+
json.source d.source
|
30
|
+
json.assign_follow_ups d.last_follow_up.present? ? d.last_follow_up.assign_follow_ups.pluck(:staff_id) : []
|
31
|
+
json.current_staff_id @current_admin.id
|
32
|
+
json.staff_id d.staff_id
|
33
|
+
json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : ''
|
34
|
+
json.self_flag (d.staff_id == @current_admin.id) || (d.last_follow_up_id.in? follow_up_ids)
|
35
|
+
json.followed d.users.where(user_id:@current_admin.user.id).first ? 1 : 0
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
json.totalRow do
|
40
|
+
json.follow_ups_count follow_count.to_i.to_s
|
41
|
+
end
|
42
|
+
json.code 0
|
43
|
+
json.count @businesses.size
|
44
|
+
json.msg 'succcess'
|
@@ -100,6 +100,7 @@
|
|
100
100
|
<% if can? :create, EducodeSales::Business %>
|
101
101
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加商机</button>
|
102
102
|
<% end %>
|
103
|
+
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="followes"> 我的关注</button>
|
103
104
|
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="mine"> 我的商机</button>
|
104
105
|
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="all"> 全部商机</button>
|
105
106
|
</div>
|
@@ -138,9 +139,14 @@
|
|
138
139
|
{{# }}}
|
139
140
|
<% end %>
|
140
141
|
<% if @more %>
|
141
|
-
|
142
|
+
{{# if(d.followed==0){}}
|
143
|
+
<a class="layui-btn-xs data-count-edit more-btn more-btn1" data-name={{d.name}} data-id={{d.id}}>更多<i class="layui-icon layui-icon-down layui-nav-more"></i></a>
|
144
|
+
{{# }else{}}
|
145
|
+
<a class="layui-btn-xs data-count-edit more-btn more-btn2" data-name={{d.name}} data-id={{d.id}}>更多<i class="layui-icon layui-icon-down layui-nav-more"></i></a>
|
146
|
+
{{# }}}
|
142
147
|
<% end %>
|
143
148
|
</script>
|
149
|
+
|
144
150
|
<script type="text/html" id="show_keys">
|
145
151
|
<a href="javascript:void(0);" lay-event="show_keys" class="layui-table-link">{{ d.teachers_count }}</a>
|
146
152
|
</script>
|
@@ -151,10 +157,13 @@
|
|
151
157
|
<a href="<%= base_url%>/colleges/{{d.school_id}}/statistics" class="layui-table-link" target="_blank">{{ d.school
|
152
158
|
}}</a>
|
153
159
|
</script>
|
160
|
+
<script type="text/html" id="follows">
|
161
|
+
<a href="<%= base_url%>/colleges/{{d.school_id}}/statistics" class="layui-table-link" target="_blank">kkkkk</a>
|
162
|
+
</script>
|
154
163
|
|
155
164
|
|
156
165
|
<script>
|
157
|
-
layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate', 'dropdown'], function () {
|
166
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate', 'dropdown','laytpl'], function () {
|
158
167
|
var $ = layui.jquery,
|
159
168
|
form = layui.form,
|
160
169
|
request = layui.request,
|
@@ -398,6 +407,21 @@
|
|
398
407
|
title: '所属年度',
|
399
408
|
sort: true
|
400
409
|
},
|
410
|
+
{
|
411
|
+
field: 'followed',
|
412
|
+
templet:function(d){
|
413
|
+
if (d.followed==1){
|
414
|
+
|
415
|
+
return '<i class="layui-icon" style="color: goldenrod"></i> '
|
416
|
+
}
|
417
|
+
|
418
|
+
else return ''
|
419
|
+
},
|
420
|
+
width: 105,
|
421
|
+
title: '关注',
|
422
|
+
align: "center"
|
423
|
+
|
424
|
+
},
|
401
425
|
{
|
402
426
|
title: '操作',
|
403
427
|
minWidth: 220,
|
@@ -422,15 +446,18 @@
|
|
422
446
|
});
|
423
447
|
|
424
448
|
var dropmenu = gon.menus;
|
449
|
+
var dropmenu2=JSON.parse(JSON.stringify(dropmenu));
|
425
450
|
var export_dropmenu = gon.export_menus;
|
451
|
+
dropmenu2[dropmenu2.findIndex(function (elem){return elem.title.includes("关注")})].title="取消关注";
|
426
452
|
|
427
453
|
drowpdwonRender = function() {
|
428
454
|
dropdown.render({
|
429
|
-
elem: '.more-
|
430
|
-
data: dropmenu,
|
455
|
+
elem: '.more-btn1',
|
456
|
+
data: dropmenu,//dropmenu,
|
431
457
|
click: function(data, othis){
|
432
458
|
var elem = $(this.elem);
|
433
459
|
id = elem.data('id');
|
460
|
+
|
434
461
|
switch (data.event) {
|
435
462
|
case 'week':
|
436
463
|
week(id);
|
@@ -450,9 +477,44 @@
|
|
450
477
|
case 'delete':
|
451
478
|
deleteBusiness(id, elem.data('name'));
|
452
479
|
break;
|
480
|
+
case 'following':
|
481
|
+
following(id);
|
482
|
+
break;
|
453
483
|
}
|
454
484
|
}
|
455
485
|
});
|
486
|
+
dropdown.render({
|
487
|
+
elem: '.more-btn2',
|
488
|
+
data: dropmenu2,//dropmenu,
|
489
|
+
click: function(data, othis){
|
490
|
+
var elem = $(this.elem);
|
491
|
+
id = elem.data('id');
|
492
|
+
|
493
|
+
switch (data.event) {
|
494
|
+
case 'week':
|
495
|
+
week(id);
|
496
|
+
break;
|
497
|
+
case 'month':
|
498
|
+
month(id);
|
499
|
+
break;
|
500
|
+
case 'edit':
|
501
|
+
edit(id);
|
502
|
+
break;
|
503
|
+
case 'file':
|
504
|
+
file(id, elem.data('name'));
|
505
|
+
break;
|
506
|
+
case 'time_line':
|
507
|
+
time_line(id, elem.data('name'));
|
508
|
+
break;
|
509
|
+
case 'delete':
|
510
|
+
deleteBusiness(id, elem.data('name'));
|
511
|
+
break;
|
512
|
+
case 'following':
|
513
|
+
following(id);
|
514
|
+
break;
|
515
|
+
}
|
516
|
+
}
|
517
|
+
});
|
456
518
|
}
|
457
519
|
|
458
520
|
export_drowpdwonRender = function() {
|
@@ -585,6 +647,41 @@
|
|
585
647
|
layer.full(sindex);
|
586
648
|
});
|
587
649
|
}
|
650
|
+
function following(id) {
|
651
|
+
$.ajax({
|
652
|
+
type: "get",
|
653
|
+
dataType: "json",
|
654
|
+
url: '/missions/businesses/followed',
|
655
|
+
data: {business_id:id},
|
656
|
+
success: function (data) {
|
657
|
+
layer.open({
|
658
|
+
title:'关注',
|
659
|
+
content:data.msg,
|
660
|
+
btn: ['确认', '取消'],
|
661
|
+
yes:function (){
|
662
|
+
$.ajax({
|
663
|
+
type: "post",
|
664
|
+
dataType: "json",
|
665
|
+
url: '/missions/businesses/following',
|
666
|
+
data: {business_id:id},
|
667
|
+
success: function (da) {
|
668
|
+
|
669
|
+
layer.msg(da.msg,{icon: da.code==200? 1:2})
|
670
|
+
table.reload("businesses_table")
|
671
|
+
|
672
|
+
},
|
673
|
+
error:function (da){
|
674
|
+
alert('请求错误')
|
675
|
+
}
|
676
|
+
});
|
677
|
+
}
|
678
|
+
})
|
679
|
+
},
|
680
|
+
error:function (data){
|
681
|
+
alert('请求错误')
|
682
|
+
}
|
683
|
+
});
|
684
|
+
}
|
588
685
|
|
589
686
|
function edit(id) {
|
590
687
|
var content = miniPage.getHrefContent('/missions/businesses/' + id + '/edit');
|
@@ -662,7 +759,7 @@
|
|
662
759
|
layer.confirm('确定删除' + name, function (index) {
|
663
760
|
request.delete('missions/businesses/' + id, {}, function (res) {
|
664
761
|
layer.close(index);
|
665
|
-
table.reload("businesses_table")
|
762
|
+
table.reload("businesses_table",{url: '/missions/businesses'})
|
666
763
|
})
|
667
764
|
});
|
668
765
|
}
|
@@ -674,6 +771,7 @@
|
|
674
771
|
sort.field = obj.field;
|
675
772
|
sort.order = obj.type;
|
676
773
|
table.reload('businesses_table', {
|
774
|
+
url: '/missions/businesses',
|
677
775
|
initSort: obj,
|
678
776
|
where: {
|
679
777
|
sort: sort,
|
@@ -698,12 +796,14 @@
|
|
698
796
|
search = data.field
|
699
797
|
console.log(search);
|
700
798
|
table.reload('businesses_table', {
|
799
|
+
url: '/missions/businesses',
|
701
800
|
page: {
|
702
801
|
curr: 1
|
703
802
|
},
|
704
803
|
where: {q: search, sort: sort}
|
705
804
|
}, 'data');
|
706
805
|
table.reload('teachers_table', {
|
806
|
+
url: '/missions/businesses',
|
707
807
|
page: {
|
708
808
|
curr: 1
|
709
809
|
},
|
@@ -753,6 +853,21 @@
|
|
753
853
|
} else if (obj.event === 'all') {
|
754
854
|
search = {"all":"1"}
|
755
855
|
table.reload('businesses_table', {
|
856
|
+
url: '/missions/businesses',
|
857
|
+
page: {
|
858
|
+
curr: 1
|
859
|
+
},
|
860
|
+
where: {q: search, sort: sort}
|
861
|
+
}, 'data');
|
862
|
+
form.val('search_form', {
|
863
|
+
name: '', department: '', staff_id: '', business_type: '', business_step: '',
|
864
|
+
place_id: '', date: '', area: ''
|
865
|
+
})
|
866
|
+
return false;
|
867
|
+
} else if (obj.event === 'followes') {
|
868
|
+
search = {"all":"1"}
|
869
|
+
table.reload('businesses_table', {
|
870
|
+
url: '/missions/businesses/following_businesses',
|
756
871
|
page: {
|
757
872
|
curr: 1
|
758
873
|
},
|
@@ -767,6 +882,7 @@
|
|
767
882
|
else if (obj.event === 'mine') {
|
768
883
|
search = {"mine":"1"}
|
769
884
|
table.reload('businesses_table', {
|
885
|
+
url: '/missions/businesses',
|
770
886
|
page: {
|
771
887
|
curr: 1
|
772
888
|
},
|
@@ -829,7 +945,7 @@
|
|
829
945
|
layer.confirm('确定删除' + data.name, function (index) {
|
830
946
|
request.delete('missions/businesses/' + data.id, {}, function (res) {
|
831
947
|
layer.close(index);
|
832
|
-
table.reload("businesses_table")
|
948
|
+
table.reload("businesses_table",{url: '/missions/businesses',})
|
833
949
|
})
|
834
950
|
});
|
835
951
|
}else if (obj.event === 'add_follow') { // 监听添加操作
|
@@ -32,6 +32,7 @@ json.data do
|
|
32
32
|
json.staff_id d.staff_id
|
33
33
|
json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : ''
|
34
34
|
json.self_flag (d.staff_id == @current_admin.id) || (d.last_follow_up_id.in? follow_up_ids)
|
35
|
+
json.followed d.users.where(user_id:@current_admin.user.id).first ? 1 : 0
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
@@ -71,7 +71,7 @@
|
|
71
71
|
<div class="layui-inline service_show layui-hide">
|
72
72
|
<label class="layui-form-label required">服务期</label>
|
73
73
|
<div class="layui-input-inline">
|
74
|
-
<input type="text" class="layui-input required" id="service_time" name="service_time" placeholder=" - " autocomplete="off" value
|
74
|
+
<input type="text" class="layui-input required" id="service_time" name="service_time" placeholder=" - " autocomplete="off" value="<%= (@last_follow_up&.service_start_time.present? && @last_follow_up&.service_end_time.present?) ? (@last_follow_up.service_start_time.to_s + " - " + @last_follow_up.service_end_time.to_s) : '' %>">
|
75
75
|
</div>
|
76
76
|
</div>
|
77
77
|
<br class="service_show layui-hide">
|
@@ -1 +1 @@
|
|
1
|
-
<div style="text-align:center;"><%= image_tag "educode_sales/
|
1
|
+
<div style="text-align:center;"><%= image_tag "educode_sales/top_page.png", width: "900" %></div>
|
@@ -31,7 +31,7 @@
|
|
31
31
|
</li>
|
32
32
|
</ul>
|
33
33
|
<ul class="layui-nav layui-layout-right">
|
34
|
-
<li class="layui-nav-item
|
34
|
+
<li class="layui-nav-item layui-show-md-inline-block" id="logout">
|
35
35
|
<a href="javascript:;">
|
36
36
|
<%= image_tag "/images/#{url_to_avatar(@current_admin.user)}", class: 'layui-nav-img' %>
|
37
37
|
<%= @current_admin.user.real_name %>
|
data/config/routes.rb
CHANGED
@@ -85,6 +85,7 @@ EducodeSales::Engine.routes.draw do
|
|
85
85
|
|
86
86
|
resources :businesses do
|
87
87
|
collection do
|
88
|
+
post :following
|
88
89
|
get :export_records
|
89
90
|
post :get_export_data
|
90
91
|
get :add_export_records
|
@@ -98,6 +99,8 @@ EducodeSales::Engine.routes.draw do
|
|
98
99
|
get :file
|
99
100
|
get :time_line
|
100
101
|
get :upload_file
|
102
|
+
get :following_businesses
|
103
|
+
get :followed
|
101
104
|
end
|
102
105
|
|
103
106
|
member do
|
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.7.
|
4
|
+
version: 0.7.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- app/assets/images/educode_sales/loginbg.png
|
113
113
|
- app/assets/images/educode_sales/logo.png
|
114
114
|
- app/assets/images/educode_sales/money_plans.png
|
115
|
+
- app/assets/images/educode_sales/top_page.png
|
115
116
|
- app/assets/images/educode_sales/回收站.png
|
116
117
|
- app/assets/images/educode_sales/客户管理.png
|
117
118
|
- app/assets/javascripts/educode_sales/application.js
|
@@ -185,6 +186,7 @@ files:
|
|
185
186
|
- app/models/educode_sales/assign_follow_up.rb
|
186
187
|
- app/models/educode_sales/business.rb
|
187
188
|
- app/models/educode_sales/business_export_record.rb
|
189
|
+
- app/models/educode_sales/business_relation_ship.rb
|
188
190
|
- app/models/educode_sales/common.rb
|
189
191
|
- app/models/educode_sales/course_subject.rb
|
190
192
|
- app/models/educode_sales/customer.rb
|
@@ -234,6 +236,7 @@ files:
|
|
234
236
|
- app/views/educode_sales/businesses/export_records.html.erb
|
235
237
|
- app/views/educode_sales/businesses/export_records.json.jbuilder
|
236
238
|
- app/views/educode_sales/businesses/file.html.erb
|
239
|
+
- app/views/educode_sales/businesses/following_businesses.jbuilder
|
237
240
|
- app/views/educode_sales/businesses/get_export_data.json.jbuilder
|
238
241
|
- app/views/educode_sales/businesses/index.html.erb
|
239
242
|
- app/views/educode_sales/businesses/index.json.jbuilder
|
@@ -448,6 +451,8 @@ files:
|
|
448
451
|
- db/migrate/20220411021641_add_new_column_assessments_settings.rb
|
449
452
|
- db/migrate/20220413090940_add_september_progress_to_assessment_settings.rb
|
450
453
|
- db/migrate/20220418033025_add_staff_id_to_sets.rb
|
454
|
+
- db/migrate/20220419103842_add_column_timestamps_to_assessments_settings.rb
|
455
|
+
- db/migrate/20220420071909_create_educode_sales_business_relation_ships.rb
|
451
456
|
- lib/educode_sales.rb
|
452
457
|
- lib/educode_sales/engine.rb
|
453
458
|
- lib/educode_sales/version.rb
|