educode_sales 0.9.61 → 0.9.63
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/activities_controller.rb +12 -0
- data/app/controllers/educode_sales/businesses_controller.rb +3 -0
- data/app/controllers/educode_sales/home_controller.rb +9 -1
- data/app/controllers/educode_sales/ideas_controller.rb +3 -1
- data/app/controllers/educode_sales/teachers_controller.rb +6 -2
- data/app/models/educode_sales/idea.rb +7 -11
- data/app/views/educode_sales/activities/index.html.erb +37 -4
- data/app/views/educode_sales/activities/index.json.jbuilder +5 -0
- data/app/views/educode_sales/activities/show_schools.html.erb +84 -0
- data/app/views/educode_sales/activities/show_schools.json.jbuilder +12 -0
- data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
- data/app/views/educode_sales/businesses/daily_paper.html.erb +9 -1
- data/app/views/educode_sales/customers/edit.html.erb +3 -0
- data/app/views/educode_sales/home/staff_departments.json.jbuilder +9 -0
- data/app/views/educode_sales/idea_recycles/detail.html.erb +2 -2
- data/app/views/educode_sales/idea_recycles/index.json.jbuilder +1 -1
- data/app/views/educode_sales/ideas/detail.html.erb +2 -2
- data/app/views/educode_sales/ideas/edit.html.erb +129 -29
- data/app/views/educode_sales/ideas/index.json.jbuilder +1 -1
- data/app/views/educode_sales/ideas/new.html.erb +110 -14
- data/config/routes.rb +4 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aadc92f524887e60e288e34449257df71ec8649c217836481a2a3af62a69e6c8
|
4
|
+
data.tar.gz: 256153b8488e50aad457a407e35e31451b31610325590de79305d335c921739e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e707698f7149b22d1f776783dbbfd16065be5626ce1213c3d01d096d8b68791c3af28144d07642d6e8f8446f33fc85658ce10d64b915e11a4f0b4ed720819d28
|
7
|
+
data.tar.gz: fad659d669624a2abd61b6db7d29c1954c6b9372ea4e3bf6c1a36dc6956cf4cfab70dc46e207b2ab80ef2b7fcb8e311e2e7449d78700511c4aa2248cb638bc6a
|
@@ -151,6 +151,18 @@ module EducodeSales
|
|
151
151
|
render layout: false
|
152
152
|
end
|
153
153
|
|
154
|
+
def show_schools
|
155
|
+
respond_to do |format|
|
156
|
+
format.html do
|
157
|
+
render layout: false
|
158
|
+
end
|
159
|
+
format.json do
|
160
|
+
@data = EducodeSales::ActivityTeacher.joins(teacher: [department: :school]).where(activity_id: params[:id]).select("count(teacher_id) AS teachers_count, departments.name AS department, schools.name AS school, school_id").group("school_id")
|
161
|
+
@data = @data.distinct.page(params[:page]).per(params[:limit])
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
154
166
|
private
|
155
167
|
|
156
168
|
def activity_params
|
@@ -346,6 +346,9 @@ module EducodeSales
|
|
346
346
|
@quarter = business.where("educode_sales_follow_ups.created_at >= ?", Time.now.beginning_of_quarter).count("DISTINCT(educode_sales_follow_ups.business_id)")
|
347
347
|
@year = business.where("educode_sales_follow_ups.created_at >= ?", Time.now.beginning_of_year).count("DISTINCT(educode_sales_follow_ups.business_id)")
|
348
348
|
|
349
|
+
@activities = EducodeSales::Activity.where(staff_id: @current_admin.id).where("created_at >= ?", Time.now.beginning_of_month).count
|
350
|
+
@teachers = EducodeSales::Activity.joins(:teachers).where(staff_id: @current_admin.id).where("educode_sales_activities.created_at >= ?", Time.now.beginning_of_month).count
|
351
|
+
@schools = EducodeSales::Activity.joins(teachers: :department).where(staff_id: @current_admin.id).where("educode_sales_activities.created_at >= ?", Time.now.beginning_of_month).count("DISTINCT(departments.school_id)")
|
349
352
|
render layout: false
|
350
353
|
end
|
351
354
|
|
@@ -62,10 +62,18 @@ module EducodeSales
|
|
62
62
|
@staffs = @staffs.where(is_admin: false).where.not(id: @current_admin.id).where(job_type: common.id).page(params[:page]).per(10)
|
63
63
|
end
|
64
64
|
end
|
65
|
+
|
65
66
|
def staff_schools
|
66
67
|
@schools = School.all
|
67
68
|
if params[:q].present?
|
68
|
-
@schools = @schools.where("name like :q OR province like :q",q: "%#{params[:q]}%").page(params[:page]).per(10)
|
69
|
+
@schools = @schools.where("name like :q OR province like :q", q: "%#{params[:q]}%").page(params[:page]).per(10)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def staff_departments
|
74
|
+
@departments = Department.where(school_id: params[:school_id])
|
75
|
+
if params[:q].present?
|
76
|
+
@departments = @departments.where("name like :q", q: "%#{params[:q]}%").page(params[:page]).per(10)
|
69
77
|
end
|
70
78
|
end
|
71
79
|
|
@@ -103,9 +103,11 @@ module EducodeSales
|
|
103
103
|
gon.staffs = staffs.map { |d| { name: d.user.real_name, value: d.id } }
|
104
104
|
gon.staff_value = [{ name: @idea.staff&.user&.real_name, value: @idea.staff_id }]
|
105
105
|
gon.sale_staff_value = [{ name: @idea.sale_staff&.user&.real_name, value: @idea.sale_staff_id }]
|
106
|
-
gon.assist_staff_value = @idea.assist_staffs.map {|d|{ name: d&.user&.real_name, value: d.id }}
|
106
|
+
gon.assist_staff_value = @idea.assist_staffs.map { |d| { name: d&.user&.real_name, value: d.id } }
|
107
107
|
gon.department = { value: @idea&.department_id, name: "#{@idea&.department&.school&.name}-#{@idea&.department&.name}" }
|
108
108
|
gon.value = @idea.department_id
|
109
|
+
gon.department_list = @idea.department.present? ? [{ name: @idea.department.name, value: @idea.department_id }] : []
|
110
|
+
gon.school_list = @idea.school.present? ? [{ name: @idea.school.name, value: @idea.school_id }] : []
|
109
111
|
render layout: false
|
110
112
|
end
|
111
113
|
|
@@ -92,7 +92,7 @@ module EducodeSales
|
|
92
92
|
if params[:q].present? && params[:q][:status].present?
|
93
93
|
if params[:q][:status] == "1"
|
94
94
|
@teachers = @teachers.where("educode_sales_teachers.user_id is not null")
|
95
|
-
|
95
|
+
else
|
96
96
|
@teachers = @teachers.where("educode_sales_teachers.user_id is null")
|
97
97
|
end
|
98
98
|
end
|
@@ -120,7 +120,11 @@ module EducodeSales
|
|
120
120
|
").where("province = ?", p)
|
121
121
|
end
|
122
122
|
if params[:activity_id].present?
|
123
|
-
|
123
|
+
if params[:school_id].present?
|
124
|
+
@teachers = @teachers.joins(activity_teachers: [teacher: :department]).where("educode_sales_activity_teachers.activity_id = ? AND departments.school_id = ?", params[:activity_id], params[:school_id])
|
125
|
+
else
|
126
|
+
@teachers = @teachers.joins(:activity_teachers).where("educode_sales_activity_teachers.activity_id = ?", params[:activity_id])
|
127
|
+
end
|
124
128
|
end
|
125
129
|
if params[:q].present? && params[:q][:date].present?
|
126
130
|
date = params[:q][:date].split(" - ")
|
@@ -52,14 +52,10 @@ module EducodeSales
|
|
52
52
|
|
53
53
|
def save_history(attr, old_value, new_value)
|
54
54
|
case attr
|
55
|
-
when "
|
55
|
+
when "school_id"
|
56
|
+
old_value = School.find_by(id: old_value)&.name
|
57
|
+
new_value = School.find_by(id: new_value)&.name
|
56
58
|
"学校/单位由“#{old_value}”变更为“#{new_value}”"
|
57
|
-
when "department_name"
|
58
|
-
"院系/部门由“#{old_value}”变更为“#{new_value}”"
|
59
|
-
# when "school_id"
|
60
|
-
# old_value = School.find_by(id: old_value)&.name
|
61
|
-
# new_value = School.find_by(id: new_value)&.name
|
62
|
-
# "学校/单位由“#{old_value}”变更为“#{new_value}”"
|
63
59
|
when "name"
|
64
60
|
"项目名称由“#{old_value}”变更为“#{new_value}”"
|
65
61
|
when "level"
|
@@ -84,10 +80,10 @@ module EducodeSales
|
|
84
80
|
"截止时间由“#{old_value}”变更为“#{new_value}”"
|
85
81
|
when "content"
|
86
82
|
"反馈情况由“#{old_value}”变更为“#{new_value}”"
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
83
|
+
when "department_id"
|
84
|
+
old_value = Department.find_by(id: old_value)&.name
|
85
|
+
new_value = Department.find_by(id: new_value)&.name
|
86
|
+
"院系/部门由“#{old_value}”变更为“#{new_value}”"
|
91
87
|
when "manager_name"
|
92
88
|
"学校负责人由“#{old_value}”变更为“#{new_value}”"
|
93
89
|
when "manager_phone"
|
@@ -74,7 +74,9 @@
|
|
74
74
|
<script type="text/html" id="teachers_count">
|
75
75
|
<a href="javascript:void(0);" lay-event="teachers_count" class="layui-table-link">{{ d.teachers_count}}</a>
|
76
76
|
</script>
|
77
|
-
|
77
|
+
<script type="text/html" id="schools_count">
|
78
|
+
<a href="javascript:void(0);" lay-event="schools_count" class="layui-table-link">{{ d.schools_count}}</a>
|
79
|
+
</script>
|
78
80
|
<script>
|
79
81
|
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
80
82
|
var $ = layui.jquery,
|
@@ -139,17 +141,24 @@
|
|
139
141
|
title: '天数',
|
140
142
|
width: 200
|
141
143
|
},
|
144
|
+
{
|
145
|
+
field: 'schools_count',
|
146
|
+
title: '学校数',
|
147
|
+
width: 200,
|
148
|
+
totalRow: true,
|
149
|
+
templet: '#schools_count'
|
150
|
+
},
|
142
151
|
{
|
143
152
|
field: 'teachers_count',
|
144
153
|
title: '教师数',
|
145
154
|
width: 200,
|
146
|
-
|
155
|
+
totalRow:true,
|
147
156
|
templet: '#teachers_count'
|
148
157
|
},
|
149
158
|
{
|
150
159
|
field: 'students_count',
|
151
160
|
title: '学生数',
|
152
|
-
|
161
|
+
totalRow:'{{ parseInt(d.TOTAL_NUMS) }}',
|
153
162
|
width: 200
|
154
163
|
},
|
155
164
|
{
|
@@ -284,8 +293,32 @@
|
|
284
293
|
return false;
|
285
294
|
}
|
286
295
|
else if (obj.event === 'teachers_count') {
|
287
|
-
activity_id = obj.data.id
|
296
|
+
activity_id = obj.data.id;
|
297
|
+
school_id = '';
|
288
298
|
content = miniPage.getHrefContent('/missions/activities/show_teachers');
|
299
|
+
openWH = miniPage.getOpenWidthHeight();
|
300
|
+
index2 = layer.open({
|
301
|
+
title: '活动列表/' + data.name,
|
302
|
+
type: 1,
|
303
|
+
shade: 0.2,
|
304
|
+
maxmin: true,
|
305
|
+
shadeClose: true,
|
306
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
307
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
308
|
+
content: content,
|
309
|
+
success: function (layero, index) {
|
310
|
+
form.render('select');
|
311
|
+
},
|
312
|
+
});
|
313
|
+
$(window).on("resize", function () {
|
314
|
+
layer.full(index);
|
315
|
+
});
|
316
|
+
return false;
|
317
|
+
} else if (obj.event == 'schools_count') {
|
318
|
+
activity_id = obj.data.id;
|
319
|
+
activity_name = data.name;
|
320
|
+
school_id = '';
|
321
|
+
content = miniPage.getHrefContent('/missions/activities/' + obj.data.id +'/show_schools');
|
289
322
|
openWH = miniPage.getOpenWidthHeight();
|
290
323
|
index2 = layer.open({
|
291
324
|
title: '活动列表/' + data.name,
|
@@ -1,4 +1,5 @@
|
|
1
1
|
teachers_count = 0
|
2
|
+
schools_count = 0
|
2
3
|
json.data do
|
3
4
|
json.array! @activities do |d|
|
4
5
|
json.id d.id
|
@@ -15,11 +16,15 @@ json.data do
|
|
15
16
|
json.staff_manage d.manages.map { |d| d.staff.user.real_name}.uniq.join("、")
|
16
17
|
json.staff_assist d.assists.map { |d| d.staff.user.real_name}.uniq.join("、")
|
17
18
|
json.expert d.experts.pluck(:name).join("、")
|
19
|
+
|
20
|
+
json.schools_count EducodeSales::ActivityTeacher.joins(teacher: :department).where(activity_id: d.id).select("distinct(school_id)").count
|
21
|
+
schools_count += EducodeSales::ActivityTeacher.joins(teacher: :department).where(activity_id: d.id).select("distinct(school_id)").count
|
18
22
|
end
|
19
23
|
end
|
20
24
|
|
21
25
|
json.totalRow do
|
22
26
|
json.teachers_count teachers_count.to_s
|
27
|
+
json.schools_count schools_count.to_s
|
23
28
|
end
|
24
29
|
json.code 0
|
25
30
|
json.count @activities.total_count
|
@@ -0,0 +1,84 @@
|
|
1
|
+
<div class="min-height-table">
|
2
|
+
<table class="layui-hide" id="show_school_table" style="min-height: 300px;" lay-filter="show_school_table"></table>
|
3
|
+
</div>
|
4
|
+
<script type="text/html" id="school_toolbar">
|
5
|
+
<div class="layui-btn-container">
|
6
|
+
<span class="table-label">教师列表</span>
|
7
|
+
</div>
|
8
|
+
</script>
|
9
|
+
|
10
|
+
<script type="text/html" id="teachers_count">
|
11
|
+
<a href="javascript:void(0);" lay-event="teachers_count" class="layui-table-link">{{ d.teachers_count}}</a>
|
12
|
+
</script>
|
13
|
+
<script>
|
14
|
+
|
15
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
16
|
+
var $ = layui.jquery,
|
17
|
+
form = layui.form,
|
18
|
+
request = layui.request,
|
19
|
+
miniPage = layui.miniPage;
|
20
|
+
|
21
|
+
table = layui.table;
|
22
|
+
table.render({
|
23
|
+
elem: '#show_school_table',
|
24
|
+
url: '/missions/activities/' + parent.activity_id + '/show_schools',
|
25
|
+
defaultToolbar: ['filter'],
|
26
|
+
toolbar: '#school_toolbar',
|
27
|
+
cols: [
|
28
|
+
[
|
29
|
+
{
|
30
|
+
field: 'id',
|
31
|
+
width: 60,
|
32
|
+
title:'序号',
|
33
|
+
type: 'numbers',
|
34
|
+
},
|
35
|
+
{
|
36
|
+
field: 'school',
|
37
|
+
width: 300,
|
38
|
+
title: '单位',
|
39
|
+
},
|
40
|
+
{
|
41
|
+
field: 'department',
|
42
|
+
width: 200,
|
43
|
+
title: '部门'
|
44
|
+
},
|
45
|
+
{
|
46
|
+
field: 'teachers_count',
|
47
|
+
title: '教师数',
|
48
|
+
width: 120,
|
49
|
+
templet: "#teachers_count"
|
50
|
+
},
|
51
|
+
]
|
52
|
+
],
|
53
|
+
page: true,
|
54
|
+
});
|
55
|
+
|
56
|
+
|
57
|
+
table.on('tool(show_school_table)', function (obj) {
|
58
|
+
if (obj.event === 'teachers_count') {
|
59
|
+
activity_id = parent.activity_id;
|
60
|
+
school_id = obj.data.school_id;
|
61
|
+
content = miniPage.getHrefContent('/missions/activities/show_teachers');
|
62
|
+
openWH = miniPage.getOpenWidthHeight();
|
63
|
+
index2 = layer.open({
|
64
|
+
title: '活动列表/' + parent.activity_name,
|
65
|
+
type: 1,
|
66
|
+
shade: 0.2,
|
67
|
+
maxmin: true,
|
68
|
+
shadeClose: true,
|
69
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
70
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
71
|
+
content: content,
|
72
|
+
success: function (layero, index) {
|
73
|
+
form.render('select');
|
74
|
+
},
|
75
|
+
});
|
76
|
+
$(window).on("resize", function () {
|
77
|
+
layer.full(index);
|
78
|
+
});
|
79
|
+
return false;
|
80
|
+
}
|
81
|
+
})
|
82
|
+
|
83
|
+
});
|
84
|
+
</script>
|
@@ -52,7 +52,7 @@
|
|
52
52
|
table = layui.table;
|
53
53
|
table.render({
|
54
54
|
elem: '#show_teachers_table',
|
55
|
-
url: '/missions/teachers?activity_id=' + parent.activity_id,
|
55
|
+
url: '/missions/teachers?activity_id=' + parent.activity_id + "&school_id=" + (parent.school_id ? parent.school_id : ''),
|
56
56
|
toolbar: '#teacher_toolbar',
|
57
57
|
defaultToolbar: ['filter'],
|
58
58
|
cols: [
|
@@ -9,7 +9,12 @@
|
|
9
9
|
本季-<span style="color: rgb(56, 150, 243);font-weight: bold;"><%= @quarter %>, </span>
|
10
10
|
本年-<span style="color: rgb(56, 150, 243);font-weight: bold;"><%= @year %></span>
|
11
11
|
</p>
|
12
|
-
<p
|
12
|
+
<p>二、本月已组织会议</p>
|
13
|
+
<p style="margin-bottom: 30px;">
|
14
|
+
活动-<span style="color: rgb(56, 150, 243);font-weight: bold;"><%= @activities %>, </span>
|
15
|
+
学校-<span style="color: rgb(56, 150, 243);font-weight: bold;"><%= @schools %>, </span>
|
16
|
+
教师-<span style="color: rgb(56, 150, 243);font-weight: bold;"><%= @teachers %></span>
|
17
|
+
</p>
|
13
18
|
<p>三、客户跟进情况</p>
|
14
19
|
<% text = "\n" %>
|
15
20
|
<% text += "一、AB类商机开拓情况\n" %>
|
@@ -17,6 +22,9 @@
|
|
17
22
|
<% text += "本季-#{@quarter }, "%>
|
18
23
|
<% text += "本年-#{@year }\n\n"%>
|
19
24
|
<% text += "二、本月已组织会议 \n\n"%>
|
25
|
+
<% text += "活动-#{@activities }, "%>
|
26
|
+
<% text += "学校-#{@schools }, "%>
|
27
|
+
<% text += "教师-#{@teachers }\n\n"%>
|
20
28
|
<% text += "三、客户跟进情况 \n"%>
|
21
29
|
<% @followups.each_with_index do |d, i| %>
|
22
30
|
<% text += "#{i+1}、#{d.business&.department&.school&.name}--**商机:#{d.description}\n" %>
|
@@ -18,13 +18,13 @@
|
|
18
18
|
<div class="layui-inline">
|
19
19
|
<label class="layui-form-label" style="width: 100px">学校/单位:</label>
|
20
20
|
<div class="layui-input-inline">
|
21
|
-
<%= idea.
|
21
|
+
<%= idea.school&.name %>
|
22
22
|
</div>
|
23
23
|
</div>
|
24
24
|
<div class="layui-inline">
|
25
25
|
<label class="layui-form-label" style="width: 100px">院系/部门:</label>
|
26
26
|
<div class="layui-input-inline">
|
27
|
-
<%= idea.
|
27
|
+
<%= idea.department&.name %>
|
28
28
|
</div>
|
29
29
|
</div>
|
30
30
|
<div class="layui-inline">
|
@@ -1,7 +1,7 @@
|
|
1
1
|
json.data do
|
2
2
|
json.array! @ideas do |d|
|
3
3
|
json.(d, :id, :name, :level, :status, :types, :model, :content)
|
4
|
-
json.school d.
|
4
|
+
json.school d.school&.name
|
5
5
|
json.staff d.staff&.user&.real_name
|
6
6
|
json.hardware d.hardware.to_f.round(2)
|
7
7
|
json.project d.project.to_i
|
@@ -18,13 +18,13 @@
|
|
18
18
|
<div class="layui-inline">
|
19
19
|
<label class="layui-form-label" style="width: 100px">学校/单位:</label>
|
20
20
|
<div class="layui-input-inline">
|
21
|
-
<%= idea.
|
21
|
+
<%= idea.school&.name %>
|
22
22
|
</div>
|
23
23
|
</div>
|
24
24
|
<div class="layui-inline">
|
25
25
|
<label class="layui-form-label" style="width: 100px">院系/部门:</label>
|
26
26
|
<div class="layui-input-inline">
|
27
|
-
<%= idea.
|
27
|
+
<%= idea.department&.name %>
|
28
28
|
</div>
|
29
29
|
</div>
|
30
30
|
<div class="layui-inline">
|
@@ -9,13 +9,13 @@
|
|
9
9
|
<div class="layui-col-md6">
|
10
10
|
<labeL class="layui-form-label required">学校/单位:</labeL>
|
11
11
|
<div class="layui-input-block">
|
12
|
-
<
|
12
|
+
<div id="school_id" style="width: 600px;"></div>
|
13
13
|
</div>
|
14
14
|
</div>
|
15
15
|
<div class="layui-col-md6">
|
16
16
|
<labeL class="layui-form-label">院系/部门:</labeL>
|
17
17
|
<div class="layui-input-block">
|
18
|
-
<
|
18
|
+
<div id="department_id" style="width: 600px;"></div>
|
19
19
|
</div>
|
20
20
|
</div>
|
21
21
|
</div>
|
@@ -176,17 +176,107 @@
|
|
176
176
|
|
177
177
|
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput', 'xmSelect', 'upload'], function () {
|
178
178
|
var form = layui.form,
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
179
|
+
layer = layui.layer,
|
180
|
+
request = layui.request,
|
181
|
+
laydate = layui.laydate,
|
182
|
+
table = layui.table,
|
183
|
+
laytpl = layui.laytpl,
|
184
|
+
request = layui.request,
|
185
|
+
xmSelect = layui.xmSelect,
|
186
|
+
upload = layui.upload,
|
187
|
+
$ = layui.$;
|
188
188
|
selectInput = layui.selectInput;
|
189
189
|
|
190
|
+
|
191
|
+
var school_list = xmSelect.render({
|
192
|
+
el: '#school_id',
|
193
|
+
remoteSearch: true,
|
194
|
+
autoRow: true,
|
195
|
+
radio: true,
|
196
|
+
delay: 1000,
|
197
|
+
tips: '支持学校名称搜索,请至少输入一个字符',
|
198
|
+
searchTips: '支持名称/省份搜索,请至少输入一个字符',
|
199
|
+
paging: true,
|
200
|
+
pageRemote: true,
|
201
|
+
filterable: true,
|
202
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
203
|
+
if (!val) {
|
204
|
+
return cb([]);
|
205
|
+
}
|
206
|
+
$.ajax('/missions/staff_schools', {
|
207
|
+
method: 'get',
|
208
|
+
data: {
|
209
|
+
q: val,
|
210
|
+
page: pageIndex
|
211
|
+
},
|
212
|
+
dataType: 'json',
|
213
|
+
success: function (res) {
|
214
|
+
var data = res.data;
|
215
|
+
if (res.code == 0) {
|
216
|
+
cb(res.data, res.count);
|
217
|
+
} else {
|
218
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
219
|
+
}
|
220
|
+
}
|
221
|
+
})
|
222
|
+
}
|
223
|
+
})
|
224
|
+
|
225
|
+
var department_list = xmSelect.render({
|
226
|
+
el: '#department_id',
|
227
|
+
remoteSearch: true,
|
228
|
+
autoRow: true,
|
229
|
+
radio: true,
|
230
|
+
delay: 1000,
|
231
|
+
tips: '支持学校名称搜索,请至少输入一个字符',
|
232
|
+
searchTips: '支持名称/省份搜索,请至少输入一个字符',
|
233
|
+
paging: true,
|
234
|
+
pageRemote: true,
|
235
|
+
filterable: true,
|
236
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
237
|
+
|
238
|
+
var schools = [];
|
239
|
+
school_list.getValue().forEach(function (d) {
|
240
|
+
schools.push(d.value);
|
241
|
+
})
|
242
|
+
// if (schools.length == 0) {
|
243
|
+
// layer.alert("请选择学校");
|
244
|
+
// return false;
|
245
|
+
// }
|
246
|
+
school_id = schools[0];
|
247
|
+
|
248
|
+
|
249
|
+
if (!val) {
|
250
|
+
return cb([]);
|
251
|
+
}
|
252
|
+
$.ajax('/missions/staff_departments?school_id=' + school_id, {
|
253
|
+
method: 'get',
|
254
|
+
data: {
|
255
|
+
q: val,
|
256
|
+
page: pageIndex
|
257
|
+
},
|
258
|
+
dataType: 'json',
|
259
|
+
success: function (res) {
|
260
|
+
var data = res.data;
|
261
|
+
if (res.code == 0) {
|
262
|
+
cb(res.data, res.count);
|
263
|
+
} else {
|
264
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
265
|
+
}
|
266
|
+
}
|
267
|
+
})
|
268
|
+
}
|
269
|
+
})
|
270
|
+
|
271
|
+
|
272
|
+
department_list.setValue(
|
273
|
+
gon.department_list
|
274
|
+
)
|
275
|
+
school_list.setValue(
|
276
|
+
gon.school_list
|
277
|
+
)
|
278
|
+
|
279
|
+
|
190
280
|
form.render();
|
191
281
|
//时间常规用法
|
192
282
|
laydate.render({
|
@@ -261,26 +351,36 @@
|
|
261
351
|
|
262
352
|
//监听提交
|
263
353
|
form.on('submit(saveBtn)', function (data) {
|
264
|
-
|
265
|
-
// layer.alert("请选择单位部门")
|
266
|
-
// return false;
|
267
|
-
// } else {
|
268
|
-
data.field.department_id = department.getValue() || department_id;
|
269
|
-
data.field.staff_id = staff_list.getValue('valueStr');
|
354
|
+
data.field.staff_id = staff_list.getValue('valueStr');
|
270
355
|
data.field.sale_staff_id = sale_staff_list.getValue('valueStr');
|
271
356
|
data.field.assist_staff_ids = assist_staff_list.getValue('valueStr');
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
357
|
+
var schools = [];
|
358
|
+
school_list.getValue().forEach(function (d) {
|
359
|
+
schools.push(d.value);
|
360
|
+
})
|
361
|
+
if (schools.length == 0) {
|
362
|
+
layer.alert("请选择学校");
|
363
|
+
return false;
|
364
|
+
}
|
365
|
+
data.field.school_id = schools[0];
|
366
|
+
|
367
|
+
var departments = [];
|
368
|
+
department_list.getValue().forEach(function (d) {
|
369
|
+
departments.push(d.value);
|
370
|
+
})
|
371
|
+
data.field.department_id = departments[0];
|
372
|
+
request.authPut("missions/ideas/" + parent.id, data.field, function (res) {
|
373
|
+
if (res.success == false) {
|
374
|
+
layer.alert(res.msg)
|
375
|
+
} else {
|
376
|
+
layer.close(parent.edit_index);
|
377
|
+
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
378
|
+
parent.table.reload('ideas_table', {
|
379
|
+
done: function () {
|
380
|
+
}
|
381
|
+
});
|
382
|
+
}
|
383
|
+
})
|
284
384
|
// }
|
285
385
|
return false;
|
286
386
|
});
|
@@ -9,13 +9,13 @@
|
|
9
9
|
<div class="layui-col-md6">
|
10
10
|
<labeL class="layui-form-label required">学校/单位:</labeL>
|
11
11
|
<div class="layui-input-block">
|
12
|
-
<
|
12
|
+
<div id="school_id" style="width: 600px;"></div>
|
13
13
|
</div>
|
14
14
|
</div>
|
15
15
|
<div class="layui-col-md6">
|
16
16
|
<labeL class="layui-form-label">院系/部门:</labeL>
|
17
17
|
<div class="layui-input-block">
|
18
|
-
<
|
18
|
+
<div id="department_id" style="width: 600px;"></div>
|
19
19
|
</div>
|
20
20
|
</div>
|
21
21
|
</div>
|
@@ -194,6 +194,87 @@
|
|
194
194
|
});
|
195
195
|
form.render();
|
196
196
|
|
197
|
+
var school_list = xmSelect.render({
|
198
|
+
el: '#school_id',
|
199
|
+
remoteSearch: true,
|
200
|
+
autoRow: true,
|
201
|
+
radio: true,
|
202
|
+
delay: 1000,
|
203
|
+
tips: '支持学校名称搜索,请至少输入一个字符',
|
204
|
+
searchTips: '支持名称/省份搜索,请至少输入一个字符',
|
205
|
+
paging: true,
|
206
|
+
pageRemote: true,
|
207
|
+
filterable: true,
|
208
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
209
|
+
if (!val) {
|
210
|
+
return cb([]);
|
211
|
+
}
|
212
|
+
$.ajax('/missions/staff_schools', {
|
213
|
+
method: 'get',
|
214
|
+
data: {
|
215
|
+
q: val,
|
216
|
+
page: pageIndex
|
217
|
+
},
|
218
|
+
dataType: 'json',
|
219
|
+
success: function (res) {
|
220
|
+
var data = res.data;
|
221
|
+
if (res.code == 0) {
|
222
|
+
cb(res.data, res.count);
|
223
|
+
} else {
|
224
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
225
|
+
}
|
226
|
+
}
|
227
|
+
})
|
228
|
+
}
|
229
|
+
})
|
230
|
+
|
231
|
+
var department_list = xmSelect.render({
|
232
|
+
el: '#department_id',
|
233
|
+
remoteSearch: true,
|
234
|
+
autoRow: true,
|
235
|
+
radio: true,
|
236
|
+
delay: 1000,
|
237
|
+
tips: '支持学校名称搜索,请至少输入一个字符',
|
238
|
+
searchTips: '支持名称/省份搜索,请至少输入一个字符',
|
239
|
+
paging: true,
|
240
|
+
pageRemote: true,
|
241
|
+
filterable: true,
|
242
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
243
|
+
|
244
|
+
var schools = [];
|
245
|
+
school_list.getValue().forEach(function (d) {
|
246
|
+
schools.push(d.value);
|
247
|
+
})
|
248
|
+
// if (schools.length == 0) {
|
249
|
+
// layer.alert("请选择学校");
|
250
|
+
// return false;
|
251
|
+
// }
|
252
|
+
school_id = schools[0];
|
253
|
+
|
254
|
+
|
255
|
+
if (!val) {
|
256
|
+
return cb([]);
|
257
|
+
}
|
258
|
+
$.ajax('/missions/staff_departments?school_id=' + school_id, {
|
259
|
+
method: 'get',
|
260
|
+
data: {
|
261
|
+
q: val,
|
262
|
+
page: pageIndex
|
263
|
+
},
|
264
|
+
dataType: 'json',
|
265
|
+
success: function (res) {
|
266
|
+
var data = res.data;
|
267
|
+
if (res.code == 0) {
|
268
|
+
cb(res.data, res.count);
|
269
|
+
} else {
|
270
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
271
|
+
}
|
272
|
+
}
|
273
|
+
})
|
274
|
+
}
|
275
|
+
})
|
276
|
+
|
277
|
+
|
197
278
|
upload.render({
|
198
279
|
elem: '#test8'
|
199
280
|
, url: '/missions/upload_files' //此处配置你自己的上传接口即可
|
@@ -252,7 +333,7 @@
|
|
252
333
|
el: '#assist_staff_ids',
|
253
334
|
data: gon.staffs,
|
254
335
|
filterable: true,
|
255
|
-
multiple:true
|
336
|
+
multiple: true
|
256
337
|
})
|
257
338
|
|
258
339
|
//监听提交
|
@@ -261,17 +342,32 @@
|
|
261
342
|
// layer.alert("请选择单位部门")
|
262
343
|
// return false;
|
263
344
|
// } else {
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
345
|
+
|
346
|
+
var schools = [];
|
347
|
+
school_list.getValue().forEach(function (d) {
|
348
|
+
schools.push(d.value);
|
349
|
+
})
|
350
|
+
if (schools.length == 0) {
|
351
|
+
layer.alert("请选择学校");
|
352
|
+
return false;
|
353
|
+
}
|
354
|
+
data.field.school_id = schools[0];
|
355
|
+
|
356
|
+
var departments = [];
|
357
|
+
department_list.getValue().forEach(function (d) {
|
358
|
+
departments.push(d.value);
|
359
|
+
})
|
360
|
+
data.field.department_id = departments[0];
|
361
|
+
data.field.staff_id = staff_list.getValue('valueStr');
|
362
|
+
data.field.sale_staff_id = sale_staff_list.getValue('valueStr');
|
363
|
+
data.field.assist_staff_ids = assist_staff_list.getValue('valueStr');
|
364
|
+
request.authPost("missions/ideas/", data.field, function (res) {
|
365
|
+
if (res.success == false) {
|
366
|
+
layer.alert(res.msg)
|
367
|
+
} else {
|
368
|
+
layer.close(parent.add_idea_index);
|
369
|
+
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
370
|
+
parent.table.reload('ideas_table', {
|
275
371
|
done: function () {
|
276
372
|
}
|
277
373
|
});
|
data/config/routes.rb
CHANGED
@@ -14,6 +14,7 @@ EducodeSales::Engine.routes.draw do
|
|
14
14
|
get :sales_staff, to: "home#sales_staff"
|
15
15
|
get :sales_place, to: "home#sales_place"
|
16
16
|
get :staff_schools, to: "home#staff_schools"
|
17
|
+
get :staff_departments, to: "home#staff_departments"
|
17
18
|
get :filter, to: "application#filter"
|
18
19
|
|
19
20
|
|
@@ -265,6 +266,9 @@ EducodeSales::Engine.routes.draw do
|
|
265
266
|
collection do
|
266
267
|
get :show_teachers
|
267
268
|
end
|
269
|
+
member do
|
270
|
+
get :show_schools
|
271
|
+
end
|
268
272
|
end
|
269
273
|
|
270
274
|
resources :sales 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.9.
|
4
|
+
version: 0.9.63
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -236,6 +236,8 @@ files:
|
|
236
236
|
- app/views/educode_sales/activities/index.html.erb
|
237
237
|
- app/views/educode_sales/activities/index.json.jbuilder
|
238
238
|
- app/views/educode_sales/activities/new.html.erb
|
239
|
+
- app/views/educode_sales/activities/show_schools.html.erb
|
240
|
+
- app/views/educode_sales/activities/show_schools.json.jbuilder
|
239
241
|
- app/views/educode_sales/activities/show_teachers.html.erb
|
240
242
|
- app/views/educode_sales/assessments/_finished.html.erb
|
241
243
|
- app/views/educode_sales/assessments/_progress.html.erb
|
@@ -305,6 +307,7 @@ files:
|
|
305
307
|
- app/views/educode_sales/home/search_operation_teacher.json.jbuilder
|
306
308
|
- app/views/educode_sales/home/search_teacher.json.jbuilder
|
307
309
|
- app/views/educode_sales/home/search_users.json.jbuilder
|
310
|
+
- app/views/educode_sales/home/staff_departments.json.jbuilder
|
308
311
|
- app/views/educode_sales/home/staff_schools.json.jbuilder
|
309
312
|
- app/views/educode_sales/home/statistics.html.erb
|
310
313
|
- app/views/educode_sales/idea_recycles/activities.json.jbuilder
|