educode_sales 0.3.5 → 0.3.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 +5 -5
- data/app/assets/javascripts/educode_sales/extent/xm-select.js +8 -0
- data/app/assets/stylesheets/educode_sales/public.css +2 -1
- data/app/controllers/educode_sales/businesses_controller.rb +26 -10
- data/app/controllers/educode_sales/follow_ups_controller.rb +10 -1
- 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/key_person_controller.rb +1 -1
- data/app/controllers/educode_sales/places_controller.rb +1 -0
- data/app/controllers/educode_sales/plans_controller.rb +1 -1
- 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 +17 -5
- 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/key_person.rb +1 -1
- data/app/views/educode_sales/activities/edit.html.erb +1 -2
- data/app/views/educode_sales/activities/index.html.erb +38 -18
- data/app/views/educode_sales/activities/new.html.erb +1 -1
- data/app/views/educode_sales/activities/show_teachers.html.erb +12 -12
- data/app/views/educode_sales/businesses/edit.html.erb +15 -4
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +54 -6
- data/app/views/educode_sales/businesses/edit_plan.html.erb +4 -4
- data/app/views/educode_sales/businesses/index.html.erb +169 -23
- data/app/views/educode_sales/businesses/index.json.jbuilder +4 -0
- data/app/views/educode_sales/businesses/new.html.erb +13 -3
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +53 -16
- data/app/views/educode_sales/businesses/show_follow.html.erb +25 -19
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +7 -1
- data/app/views/educode_sales/businesses/show_keys.html.erb +1 -1
- data/app/views/educode_sales/commons/edit.html.erb +3 -4
- data/app/views/educode_sales/commons/index.html.erb +4 -4
- data/app/views/educode_sales/commons/new.html.erb +1 -1
- data/app/views/educode_sales/follow_ups/teachers.json.jbuilder +3 -2
- data/app/views/educode_sales/home/sales_staff.json.jbuilder +9 -0
- data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +9 -9
- data/app/views/educode_sales/operation_plans/_monthly.html.erb +10 -9
- data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +9 -8
- data/app/views/educode_sales/operation_plans/_weekly.html.erb +11 -9
- data/app/views/educode_sales/operation_plans/edit_month.html.erb +1 -1
- data/app/views/educode_sales/operation_plans/edit_week.html.erb +2 -1
- data/app/views/educode_sales/operation_plans/new_month.html.erb +1 -1
- data/app/views/educode_sales/operation_plans/new_monthly.html.erb +7 -7
- data/app/views/educode_sales/operation_plans/new_week.html.erb +1 -1
- data/app/views/educode_sales/operation_plans/new_weekly.html.erb +7 -7
- data/app/views/educode_sales/operation_reports/audit.html.erb +3 -3
- data/app/views/educode_sales/operation_reports/edit.html.erb +34 -8
- data/app/views/educode_sales/operation_reports/show.html.erb +6 -6
- data/app/views/educode_sales/operations/trends.html.erb +2 -2
- data/app/views/educode_sales/places/edit.html.erb +1 -3
- data/app/views/educode_sales/places/index.html.erb +6 -6
- data/app/views/educode_sales/places/index.json.jbuilder +3 -3
- data/app/views/educode_sales/places/new.html.erb +1 -2
- data/app/views/educode_sales/plans/_monthPlan.html.erb +9 -9
- data/app/views/educode_sales/plans/_monthly.html.erb +9 -8
- data/app/views/educode_sales/plans/_weekPlan.html.erb +9 -8
- data/app/views/educode_sales/plans/_weekly.html.erb +10 -8
- data/app/views/educode_sales/plans/edit_month.html.erb +1 -1
- data/app/views/educode_sales/plans/edit_week.html.erb +1 -1
- data/app/views/educode_sales/plans/edit_weekly.html.erb +7 -7
- data/app/views/educode_sales/plans/new_month.html.erb +3 -3
- data/app/views/educode_sales/plans/new_monthly.html.erb +7 -7
- data/app/views/educode_sales/plans/new_week.html.erb +1 -1
- data/app/views/educode_sales/plans/new_weekly.html.erb +7 -7
- data/app/views/educode_sales/roles/edit.html.erb +2 -3
- data/app/views/educode_sales/roles/index.html.erb +6 -7
- data/app/views/educode_sales/roles/new.html.erb +1 -1
- data/app/views/educode_sales/sale_reports/audit.html.erb +3 -3
- data/app/views/educode_sales/sale_reports/edit.html.erb +33 -7
- data/app/views/educode_sales/sale_reports/show.html.erb +2 -2
- data/app/views/educode_sales/sale_trends/trends.html.erb +2 -2
- data/app/views/educode_sales/sales/index.html.erb +4 -4
- data/app/views/educode_sales/sales/index.json.jbuilder +2 -2
- data/app/views/educode_sales/sales/operations.html.erb +4 -4
- data/app/views/educode_sales/sales/school.html.erb +1 -1
- data/app/views/educode_sales/sales/trends.html.erb +2 -6
- data/app/views/educode_sales/sales/xschool.html.erb +1 -1
- data/app/views/educode_sales/sessions/login.html.erb +2 -2
- data/app/views/educode_sales/staffs/edit.html.erb +1 -1
- data/app/views/educode_sales/staffs/index.html.erb +6 -6
- data/app/views/educode_sales/staffs/new.html.erb +2 -2
- data/app/views/educode_sales/teachers/add_courses.html.erb +4 -5
- data/app/views/educode_sales/teachers/add_event.html.erb +1 -1
- data/app/views/educode_sales/teachers/add_keys.html.erb +58 -13
- data/app/views/educode_sales/teachers/edit.html.erb +6 -4
- data/app/views/educode_sales/teachers/edit_follow_record.html.erb +1 -1
- data/app/views/educode_sales/teachers/import.html.erb +40 -0
- data/app/views/educode_sales/teachers/index.html.erb +151 -38
- data/app/views/educode_sales/teachers/new.html.erb +4 -4
- data/app/views/educode_sales/teachers/new_follow_record.html.erb +1 -1
- data/app/views/educode_sales/teachers/search_new.html.erb +1 -1
- data/app/views/educode_sales/teachers/show_class.html.erb +1 -1
- data/app/views/educode_sales/teachers/show_follow.html.erb +14 -14
- data/app/views/layouts/educode_sales/application.html.erb +14 -14
- data/config/routes.rb +5 -0
- data/db/migrate/20211009031109_add_tel_key_peoples.rb +5 -0
- data/db/migrate/20211009063423_add_source_businesses.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 +15 -8
@@ -21,6 +21,18 @@ module EducodeSales
|
|
21
21
|
def index
|
22
22
|
respond_to do |format|
|
23
23
|
format.html do
|
24
|
+
@more = can?(:create, EducodeSales::OperationPlan) || can?(:update, EducodeSales::Teacher) || can?(:destroy, EducodeSales::Teacher)
|
25
|
+
gon.menus = []
|
26
|
+
if can?(:create, EducodeSales::OperationPlan)
|
27
|
+
gon.menus << { title: '添加周计划', event: 'week' }
|
28
|
+
gon.menus << { title: '添加月计划', event: 'month' }
|
29
|
+
end
|
30
|
+
if can?(:update, EducodeSales::Teacher)
|
31
|
+
gon.menus << { title: '编辑', event: 'edit' }
|
32
|
+
end
|
33
|
+
if can?(:destroy, EducodeSales::Teacher)
|
34
|
+
gon.menus << { title: '删除', event: 'delete' }
|
35
|
+
end
|
24
36
|
end
|
25
37
|
format.json do
|
26
38
|
if @current_admin.is_admin?
|
@@ -43,7 +55,7 @@ module EducodeSales
|
|
43
55
|
@teachers = @teachers.where("educode_sales_teachers.name like ?", "%#{params[:q][:name]}%")
|
44
56
|
end
|
45
57
|
if params[:q].present? && params[:q][:professional_title].present?
|
46
|
-
@teachers = @teachers.where("educode_sales_teachers.professional_title
|
58
|
+
@teachers = @teachers.where("educode_sales_teachers.professional_title = ?", "#{params[:q][:professional_title]}")
|
47
59
|
end
|
48
60
|
if params[:q].present? && params[:q][:regist_at].present?
|
49
61
|
@teachers = @teachers.where("educode_sales_teachers.regist_at like ?", "%#{params[:q][:regist_at]}%")
|
@@ -59,7 +71,7 @@ module EducodeSales
|
|
59
71
|
@teachers = @teachers.joins(:department).where("departments.id in (?)", departments_ids)
|
60
72
|
end
|
61
73
|
if params[:q].present? && params[:q][:area].present?
|
62
|
-
p = EducodeSales::Common.
|
74
|
+
p = EducodeSales::Common.find(params[:q][:area]).name
|
63
75
|
@teachers = @teachers.joins("
|
64
76
|
JOIN departments ON educode_sales_teachers.department_id = departments.id
|
65
77
|
JOIN schools ON departments.school_id = schools.id
|
@@ -79,7 +91,9 @@ module EducodeSales
|
|
79
91
|
end
|
80
92
|
end
|
81
93
|
|
82
|
-
|
94
|
+
def import
|
95
|
+
render layout: false
|
96
|
+
end
|
83
97
|
|
84
98
|
def new
|
85
99
|
render layout: false
|
@@ -98,8 +112,6 @@ module EducodeSales
|
|
98
112
|
end
|
99
113
|
|
100
114
|
if params[:activity_id].present? && params[:user_id].present?
|
101
|
-
@teacher_id = EducodeSales::Teacher.find_by(name: params[:name]).id
|
102
|
-
|
103
115
|
# 把老师添加到活动列表,提取判断下老师列表是否存在
|
104
116
|
find_teacher = Teacher.find_by(user_id: params[:user_id])
|
105
117
|
if find_teacher
|
@@ -5,6 +5,7 @@ module EducodeSales
|
|
5
5
|
has_many :money_plans, dependent: :destroy
|
6
6
|
has_many :key_person
|
7
7
|
has_many :teachers, through: :key_person
|
8
|
+
has_many :assign_follow_ups, dependent: :destroy
|
8
9
|
belongs_to :staff
|
9
10
|
belongs_to :stage, class_name: 'Common'
|
10
11
|
belongs_to :clazz, class_name: 'Common'
|
@@ -67,8 +67,7 @@
|
|
67
67
|
|
68
68
|
//监听提交
|
69
69
|
form.on('submit(data-reset-btn)', function (data) {
|
70
|
-
|
71
|
-
request.authPut("educode_sales/activities/" + <%= @activity.id %>, data.field, function (res) {
|
70
|
+
request.authPut("missions/activities/" + <%= @activity.id %>, data.field, function (res) {
|
72
71
|
if (res.success === false) {
|
73
72
|
layer.alert(res.msg)
|
74
73
|
} else {
|
@@ -2,12 +2,14 @@
|
|
2
2
|
<div class="layui-btn-container">
|
3
3
|
<span class="table-label">活动列表</span>
|
4
4
|
<% if can? :create, EducodeSales::Activity %>
|
5
|
-
|
5
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="import">导入数据</button>
|
6
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加活动</button>
|
6
7
|
<% end %>
|
7
8
|
</div>
|
8
9
|
</script>
|
9
|
-
|
10
|
+
<div class="min-height-table">
|
10
11
|
<table class="layui-hide" id="activities_table" lay-filter="activities_table"></table>
|
12
|
+
</div>
|
11
13
|
|
12
14
|
<script type="text/html" id="currentTableBar">
|
13
15
|
<% if can? :update, EducodeSales::Activity %>
|
@@ -35,7 +37,7 @@
|
|
35
37
|
|
36
38
|
table.render({
|
37
39
|
elem: '#activities_table',
|
38
|
-
url: '/
|
40
|
+
url: '/missions/activities',
|
39
41
|
toolbar: '#activity_toolbar',
|
40
42
|
defaultToolbar: [],
|
41
43
|
cols: [
|
@@ -48,41 +50,42 @@
|
|
48
50
|
{
|
49
51
|
field: 'name',
|
50
52
|
title: '活动名称',
|
51
|
-
width:
|
53
|
+
width: 400,
|
52
54
|
templet: '#teachers'
|
53
55
|
},
|
54
56
|
{
|
55
57
|
field: 'start_at',
|
56
|
-
width:
|
58
|
+
width: 120,
|
57
59
|
title: '时间',
|
58
60
|
sort: true,
|
59
61
|
},
|
60
62
|
{
|
61
63
|
field: 'days',
|
62
64
|
title: '天数',
|
63
|
-
width:
|
65
|
+
width: 100
|
64
66
|
},
|
65
67
|
{
|
66
68
|
field: 'teachers_count',
|
67
69
|
title: '教师数',
|
68
|
-
width:
|
70
|
+
width: 100,
|
69
71
|
templet: '#teachers_count'
|
70
72
|
},
|
71
73
|
{
|
72
74
|
field: 'students_count',
|
73
75
|
title: '学生数',
|
74
|
-
width:
|
76
|
+
width: 100
|
75
77
|
},
|
76
78
|
{
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
79
|
+
title: '操作',
|
80
|
+
width: 120,
|
81
|
+
fixed: 'right',
|
82
|
+
toolbar: '#currentTableBar',
|
83
|
+
align: "center"
|
81
84
|
}
|
82
85
|
]
|
83
86
|
],
|
84
|
-
height: 700,
|
85
87
|
limit: 20,
|
88
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
86
89
|
page: true
|
87
90
|
});
|
88
91
|
|
@@ -99,7 +102,7 @@
|
|
99
102
|
})
|
100
103
|
table.on('toolbar(activities_table)', function (obj) {
|
101
104
|
if (obj.event === 'add') { // 监听添加操作
|
102
|
-
var content = miniPage.getHrefContent('/
|
105
|
+
var content = miniPage.getHrefContent('/missions/activities/new');
|
103
106
|
var openWH = miniPage.getOpenWidthHeight();
|
104
107
|
index = layer.open({
|
105
108
|
title: '添加活动',
|
@@ -118,13 +121,30 @@
|
|
118
121
|
layer.full(index);
|
119
122
|
});
|
120
123
|
}
|
124
|
+
else if (obj.event === 'import') { //
|
125
|
+
var content = miniPage.getHrefContent('/missions/teachers/import');
|
126
|
+
var openWH = miniPage.getOpenWidthHeight();
|
127
|
+
import_index = layer.open({
|
128
|
+
title: '导入数据',
|
129
|
+
type: 1,
|
130
|
+
shade: 0.2,
|
131
|
+
shadeClose: true,
|
132
|
+
area: ['200px', '100px'],
|
133
|
+
offset: 'auto',
|
134
|
+
closeBtn: 0,
|
135
|
+
content: content,
|
136
|
+
});
|
137
|
+
$(window).on("resize", function () {
|
138
|
+
layer.full(index);
|
139
|
+
});
|
140
|
+
}
|
121
141
|
});
|
122
142
|
|
123
143
|
table.on('tool(activities_table)', function (obj) {
|
124
144
|
var data = obj.data;
|
125
145
|
var id = data.id
|
126
146
|
if (obj.event === 'edit') {
|
127
|
-
var content = miniPage.getHrefContent('/
|
147
|
+
var content = miniPage.getHrefContent('/missions/activities/' + id + '/edit');
|
128
148
|
var openWH = miniPage.getOpenWidthHeight();
|
129
149
|
var index = layer.open({
|
130
150
|
title: '编辑',
|
@@ -148,14 +168,14 @@
|
|
148
168
|
return false;
|
149
169
|
} else if (obj.event === 'delete') {
|
150
170
|
layer.confirm('确定删除' + data.name, function (index) {
|
151
|
-
request.delete('
|
171
|
+
request.delete('missions/activities/' + data.id, {}, function (res) {
|
152
172
|
layer.close(index);
|
153
173
|
table.reload("activities_table")
|
154
174
|
})
|
155
175
|
});
|
156
176
|
} else if (obj.event === 'teachers') {
|
157
177
|
activity_id = obj.data.id
|
158
|
-
var content = miniPage.getHrefContent('/
|
178
|
+
var content = miniPage.getHrefContent('/missions/activities/show_teachers');
|
159
179
|
openWH = miniPage.getOpenWidthHeight();
|
160
180
|
index = layer.open({
|
161
181
|
title: '活动列表/' + data.name,
|
@@ -177,7 +197,7 @@
|
|
177
197
|
}
|
178
198
|
else if (obj.event === 'teachers_count') {
|
179
199
|
activity_id = obj.data.id
|
180
|
-
content = miniPage.getHrefContent('/
|
200
|
+
content = miniPage.getHrefContent('/missions/activities/show_teachers');
|
181
201
|
openWH = miniPage.getOpenWidthHeight();
|
182
202
|
index2 = layer.open({
|
183
203
|
title: '活动列表/' + data.name,
|
@@ -69,7 +69,7 @@
|
|
69
69
|
|
70
70
|
//监听提交
|
71
71
|
form.on('submit(data-reset-btn)', function (data) {
|
72
|
-
request.authPost("
|
72
|
+
request.authPost("missions/activities", data.field, function (res) {
|
73
73
|
if (res.success === false) {
|
74
74
|
layer.alert(res.msg)
|
75
75
|
} else {
|
@@ -51,7 +51,7 @@
|
|
51
51
|
table = layui.table;
|
52
52
|
table.render({
|
53
53
|
elem: '#show_teachers_table',
|
54
|
-
url: '/
|
54
|
+
url: '/missions/teachers?activity_id=' + parent.activity_id,
|
55
55
|
toolbar: '#teacher_toolbar',
|
56
56
|
defaultToolbar: [],
|
57
57
|
cols: [
|
@@ -176,7 +176,7 @@
|
|
176
176
|
*/
|
177
177
|
table.on('toolbar(teachers_table)', function (obj) {
|
178
178
|
if (obj.event === 'add') { // 手动添加
|
179
|
-
var content = miniPage.getHrefContent('/
|
179
|
+
var content = miniPage.getHrefContent('/missions/teachers/new');
|
180
180
|
var openWH = miniPage.getOpenWidthHeight();
|
181
181
|
index = layer.open({
|
182
182
|
title: '手动添加',
|
@@ -192,8 +192,8 @@
|
|
192
192
|
layer.full(index);
|
193
193
|
});
|
194
194
|
} else if (obj.event === 'search_new') { // 搜索添加
|
195
|
-
var content = miniPage.getHrefContent('/
|
196
|
-
// var content = miniPage.getHrefContent('/
|
195
|
+
var content = miniPage.getHrefContent('/missions/teachers/new');
|
196
|
+
// var content = miniPage.getHrefContent('/missions/teachers/search_new');
|
197
197
|
var openWH = miniPage.getOpenWidthHeight();
|
198
198
|
activity_id = parent.activity_id;
|
199
199
|
index = layer.open({
|
@@ -221,7 +221,7 @@
|
|
221
221
|
var data = obj.data;
|
222
222
|
id = data.id
|
223
223
|
if (obj.event === 'edit') { //编辑
|
224
|
-
var content = miniPage.getHrefContent('/
|
224
|
+
var content = miniPage.getHrefContent('/missions/teachers/' + id + '/edit');
|
225
225
|
var openWH = miniPage.getOpenWidthHeight();
|
226
226
|
sindex = layer.open({
|
227
227
|
title: '编辑',
|
@@ -245,14 +245,14 @@
|
|
245
245
|
} else if (obj.event === 'delete') {
|
246
246
|
console.log(data);
|
247
247
|
layer.confirm('确定删除' + data.name, function (index) {
|
248
|
-
request.delete('
|
248
|
+
request.delete('missions/teachers/' + data.id, {activity_id: activity_id}, function (res) {
|
249
249
|
layer.close(index);
|
250
250
|
table.reload("activities_table")
|
251
251
|
table.reload("show_teachers_table")
|
252
252
|
})
|
253
253
|
});
|
254
254
|
} else if (obj.event === 'addWeek') {
|
255
|
-
var content = miniPage.getHrefContent('/
|
255
|
+
var content = miniPage.getHrefContent('/missions/operation_plans/new_week');
|
256
256
|
var openWH = miniPage.getOpenWidthHeight();
|
257
257
|
|
258
258
|
sindex = layer.open({
|
@@ -269,7 +269,7 @@
|
|
269
269
|
layer.full(sindex);
|
270
270
|
});
|
271
271
|
} else if (obj.event === 'addMonth') {
|
272
|
-
var content = miniPage.getHrefContent('/
|
272
|
+
var content = miniPage.getHrefContent('/missions/operation_plans/new_month');
|
273
273
|
var openWH = miniPage.getOpenWidthHeight();
|
274
274
|
sindex = layer.open({
|
275
275
|
title: '添加月计划',
|
@@ -287,7 +287,7 @@
|
|
287
287
|
|
288
288
|
} else if (obj.event === 'courses') {
|
289
289
|
teacher_id = data.id
|
290
|
-
content = miniPage.getHrefContent('/
|
290
|
+
content = miniPage.getHrefContent('/missions/teachers/add_courses?id='+data.id);
|
291
291
|
openWH = miniPage.getOpenWidthHeight();
|
292
292
|
index = layer.open({
|
293
293
|
title: '课程方向',
|
@@ -307,7 +307,7 @@
|
|
307
307
|
layer.full(index);
|
308
308
|
});
|
309
309
|
}else if (obj.event === 'event') {
|
310
|
-
content = miniPage.getHrefContent('/
|
310
|
+
content = miniPage.getHrefContent('/missions/teachers/add_event');
|
311
311
|
openWH = miniPage.getOpenWidthHeight();
|
312
312
|
teacher_id = obj.data.id
|
313
313
|
index = layer.open({
|
@@ -324,7 +324,7 @@
|
|
324
324
|
layer.full(index);
|
325
325
|
});
|
326
326
|
} else if (obj.event === 'class') {
|
327
|
-
content = miniPage.getHrefContent('/
|
327
|
+
content = miniPage.getHrefContent('/missions/teachers/show_class');
|
328
328
|
openWH = miniPage.getOpenWidthHeight();
|
329
329
|
user_id = obj.data.user_id
|
330
330
|
index = layer.open({
|
@@ -345,7 +345,7 @@
|
|
345
345
|
layer.full(index);
|
346
346
|
});
|
347
347
|
} else if (obj.event === 'follow') {
|
348
|
-
content = miniPage.getHrefContent('/
|
348
|
+
content = miniPage.getHrefContent('/missions/teachers/show_follow?id=' + data.id);
|
349
349
|
openWH = miniPage.getOpenWidthHeight();
|
350
350
|
index = layer.open({
|
351
351
|
title: '跟进记录',
|
@@ -11,6 +11,14 @@
|
|
11
11
|
<label class="layui-form-label required">单位部门</label>
|
12
12
|
<div class="layui-input-block" id="department" style="width: 300px;"></div>
|
13
13
|
</div>
|
14
|
+
<br>
|
15
|
+
<div class="layui-inline" style="padding-top: 20px">
|
16
|
+
<label class="layui-form-label ">商机来源</label>
|
17
|
+
<input id="source" type="text" name="source" autocomplete="off" class="layui-input" value="<%=@business.source %>" style="width: 300px;" placeholder="请输入商机来源">
|
18
|
+
</div>
|
19
|
+
<div class="layui-inline" style="padding-top: 20px">
|
20
|
+
<p style="padding-left: 40px">请填写提供本商机的人名(如‘张明’);如果为非头歌用户,请增加单位信息(如‘张明,华为公司’)</p>
|
21
|
+
</div>
|
14
22
|
<div class="layui-form-item m-t-20">
|
15
23
|
<div class="layui-input-block">
|
16
24
|
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="edit_business">提交</button>
|
@@ -47,7 +55,7 @@
|
|
47
55
|
department_id = "";
|
48
56
|
return cb([]);
|
49
57
|
}
|
50
|
-
request.get('
|
58
|
+
request.get('missions/search?type=department&q=' + value, {}, function (res) {
|
51
59
|
return cb(res)
|
52
60
|
})
|
53
61
|
}
|
@@ -62,16 +70,19 @@
|
|
62
70
|
layer.alert("请选择单位部门")
|
63
71
|
return false;
|
64
72
|
} else {
|
65
|
-
request.authPut("
|
73
|
+
request.authPut("missions/businesses/" + parent.id, {
|
66
74
|
department_id: department.getValue() || department_id,
|
67
|
-
name: data.field.name
|
75
|
+
name: data.field.name,
|
76
|
+
source: data.field.source
|
68
77
|
}, function (res) {
|
69
78
|
if (res.success == false) {
|
70
79
|
layer.alert(res.msg)
|
71
80
|
} else {
|
72
81
|
layer.close(parent.sindex);
|
73
82
|
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
74
|
-
parent.table.reload('businesses_table')
|
83
|
+
parent.table.reload('businesses_table', {done: function() {
|
84
|
+
parent.drowpdwonRender()
|
85
|
+
}});
|
75
86
|
}
|
76
87
|
})
|
77
88
|
}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<%= Gon::Base.render_data %>
|
1
2
|
<h1 class="m-t-20 text-center"><%= @follow_up.business.name %></h1>
|
2
3
|
<div class="layui-form layuimini-form">
|
3
4
|
<div class="layui-form-item" style="padding: 25px">
|
@@ -16,9 +17,15 @@
|
|
16
17
|
<br>
|
17
18
|
<div class="layui-inline">
|
18
19
|
<label class="layui-form-label required">项目类型</label>
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
<%if EducodeSales::FollowUp.where(business_id: @follow_up.business.id,clazz_id: EducodeSales::Common.find_by(name: "O类").id).count >= 2 %>
|
21
|
+
<div class="layui-input-inline">
|
22
|
+
<%= select_tag "clazz_id", options_for_select([['O类',EducodeSales::Common.find_by(name: "O类").id]]),:disabled => true, class: 'required' %>
|
23
|
+
</div>
|
24
|
+
<%else %>
|
25
|
+
<div class="layui-input-inline">
|
26
|
+
<%= select_tag "clazz_id", options_for_select(@clazz, @follow_up&.clazz_id), class: 'required' %>
|
27
|
+
</div>
|
28
|
+
<%end %>
|
22
29
|
</div>
|
23
30
|
<div class="layui-inline">
|
24
31
|
<label class="layui-form-label required">项目阶段</label>
|
@@ -68,8 +75,14 @@
|
|
68
75
|
</div>
|
69
76
|
<span style="margin-top: 10px; float:left;">%</span>
|
70
77
|
</div>
|
78
|
+
<div class="layui-form-item">
|
79
|
+
<label class="layui-form-label">指定跟进人</label>
|
80
|
+
<div class="layui-input-inline">
|
81
|
+
<div id="edit_assign_follow" style="width: 512px;"></div>
|
82
|
+
</div>
|
83
|
+
</div>
|
71
84
|
<div class="layui-form-item layui-form-text">
|
72
|
-
<label class="layui-form-label required"
|
85
|
+
<label class="layui-form-label required">商机说明</label>
|
73
86
|
<div class="layui-input-block">
|
74
87
|
<textarea name="description" lay-verify="required" placeholder="此处可以填写:
|
75
88
|
1、有无预算;
|
@@ -101,10 +114,11 @@
|
|
101
114
|
</div>
|
102
115
|
|
103
116
|
<script>
|
104
|
-
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'laydate'], function () {
|
117
|
+
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'laydate', 'xmSelect'], function () {
|
105
118
|
var form = layui.form,
|
106
119
|
layer = layui.layer,
|
107
120
|
table = layui.table,
|
121
|
+
xmSelect = layui.xmSelect,
|
108
122
|
laytpl = layui.laytpl,
|
109
123
|
request = layui.request,
|
110
124
|
laydate = layui.laydate,
|
@@ -118,9 +132,43 @@
|
|
118
132
|
elem: '#reception_at_edit'
|
119
133
|
});
|
120
134
|
|
135
|
+
var sales_list = xmSelect.render({
|
136
|
+
el: '#edit_assign_follow',
|
137
|
+
remoteSearch: true,
|
138
|
+
clickClose: true,
|
139
|
+
delay: 1000,
|
140
|
+
paging: true,
|
141
|
+
pageRemote: true,
|
142
|
+
filterable: true,
|
143
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
144
|
+
$.ajax( '/missions/sales_staff', {
|
145
|
+
method: 'get',
|
146
|
+
data: {
|
147
|
+
q: val,
|
148
|
+
page: pageIndex
|
149
|
+
},
|
150
|
+
dataType: 'json',
|
151
|
+
success: function (res) {
|
152
|
+
var data = res.data;
|
153
|
+
if (res.code == 0) {
|
154
|
+
cb(res.data, res.count);
|
155
|
+
} else {
|
156
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
157
|
+
}
|
158
|
+
}
|
159
|
+
})
|
160
|
+
}
|
161
|
+
})
|
162
|
+
sales_list.setValue(gon.sales)
|
163
|
+
|
121
164
|
form.render();
|
122
165
|
form.on('submit(update_follow_up)', function (data) {
|
123
|
-
|
166
|
+
var assign_follow = [];
|
167
|
+
sales_list.getValue().forEach(function(d) {
|
168
|
+
assign_follow.push(d.value);
|
169
|
+
})
|
170
|
+
data.field.assign_follow_up = assign_follow;
|
171
|
+
request.authPut("missions/follow_ups/<%= @follow_up.id%>", data.field, function (res) {
|
124
172
|
if (res.success == false) {
|
125
173
|
layer.alert(res.msg)
|
126
174
|
} else {
|
@@ -81,7 +81,7 @@
|
|
81
81
|
|
82
82
|
//监听提交
|
83
83
|
form.on('submit(add_return_money)', function (data) {
|
84
|
-
request.authPost("
|
84
|
+
request.authPost("missions/follow_ups/" + parent.follow_up_id + "/add_money", data.field, function (
|
85
85
|
res) {
|
86
86
|
if (res.success == false) {
|
87
87
|
layer.alert(res.msg)
|
@@ -97,7 +97,7 @@
|
|
97
97
|
|
98
98
|
table.render({
|
99
99
|
elem: '#return_money_list',
|
100
|
-
url: '/
|
100
|
+
url: '/missions/follow_ups/' + parent.follow_up_id + '/money_plans',
|
101
101
|
cols: [
|
102
102
|
[{
|
103
103
|
field: 'id',
|
@@ -155,7 +155,7 @@
|
|
155
155
|
data.clazz = clazz ? clazz : obj.data.clazz;
|
156
156
|
data.plan_id = obj.data.id
|
157
157
|
if (obj.event === 'edit') {
|
158
|
-
request.authPut('
|
158
|
+
request.authPut('missions/follow_ups/' + parent.follow_up_id + "/update_money", data,
|
159
159
|
function (res) {
|
160
160
|
if (res.success) {
|
161
161
|
layer.alert('保存成功');
|
@@ -168,7 +168,7 @@
|
|
168
168
|
})
|
169
169
|
} else if (obj.event == 'delete') {
|
170
170
|
layer.confirm('确定删除回款金额为' + data.amount + "的计划", function (index) {
|
171
|
-
request.delete('
|
171
|
+
request.delete('missions/follow_ups/' + parent.follow_up_id + "/delete_money?plan_id=" + data.id, {}, function (res) {
|
172
172
|
layer.close(index);
|
173
173
|
table.reload("return_money_list");
|
174
174
|
table.reload("sale_plan_follow_table");
|