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.
Files changed (100) hide show
  1. checksums.yaml +5 -5
  2. data/app/assets/javascripts/educode_sales/extent/xm-select.js +8 -0
  3. data/app/assets/stylesheets/educode_sales/public.css +2 -1
  4. data/app/controllers/educode_sales/businesses_controller.rb +26 -10
  5. data/app/controllers/educode_sales/follow_ups_controller.rb +10 -1
  6. data/app/controllers/educode_sales/home_controller.rb +10 -1
  7. data/app/controllers/educode_sales/import_teachers_controller.rb +68 -0
  8. data/app/controllers/educode_sales/key_person_controller.rb +1 -1
  9. data/app/controllers/educode_sales/places_controller.rb +1 -0
  10. data/app/controllers/educode_sales/plans_controller.rb +1 -1
  11. data/app/controllers/educode_sales/sale_trends_controller.rb +8 -6
  12. data/app/controllers/educode_sales/sales_controller.rb +1 -0
  13. data/app/controllers/educode_sales/teachers_controller.rb +17 -5
  14. data/app/models/educode_sales/assign_follow_up.rb +6 -0
  15. data/app/models/educode_sales/follow_up.rb +1 -0
  16. data/app/models/educode_sales/key_person.rb +1 -1
  17. data/app/views/educode_sales/activities/edit.html.erb +1 -2
  18. data/app/views/educode_sales/activities/index.html.erb +38 -18
  19. data/app/views/educode_sales/activities/new.html.erb +1 -1
  20. data/app/views/educode_sales/activities/show_teachers.html.erb +12 -12
  21. data/app/views/educode_sales/businesses/edit.html.erb +15 -4
  22. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +54 -6
  23. data/app/views/educode_sales/businesses/edit_plan.html.erb +4 -4
  24. data/app/views/educode_sales/businesses/index.html.erb +169 -23
  25. data/app/views/educode_sales/businesses/index.json.jbuilder +4 -0
  26. data/app/views/educode_sales/businesses/new.html.erb +13 -3
  27. data/app/views/educode_sales/businesses/new_follow_record.html.erb +53 -16
  28. data/app/views/educode_sales/businesses/show_follow.html.erb +25 -19
  29. data/app/views/educode_sales/businesses/show_follow_record.html.erb +7 -1
  30. data/app/views/educode_sales/businesses/show_keys.html.erb +1 -1
  31. data/app/views/educode_sales/commons/edit.html.erb +3 -4
  32. data/app/views/educode_sales/commons/index.html.erb +4 -4
  33. data/app/views/educode_sales/commons/new.html.erb +1 -1
  34. data/app/views/educode_sales/follow_ups/teachers.json.jbuilder +3 -2
  35. data/app/views/educode_sales/home/sales_staff.json.jbuilder +9 -0
  36. data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +9 -9
  37. data/app/views/educode_sales/operation_plans/_monthly.html.erb +10 -9
  38. data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +9 -8
  39. data/app/views/educode_sales/operation_plans/_weekly.html.erb +11 -9
  40. data/app/views/educode_sales/operation_plans/edit_month.html.erb +1 -1
  41. data/app/views/educode_sales/operation_plans/edit_week.html.erb +2 -1
  42. data/app/views/educode_sales/operation_plans/new_month.html.erb +1 -1
  43. data/app/views/educode_sales/operation_plans/new_monthly.html.erb +7 -7
  44. data/app/views/educode_sales/operation_plans/new_week.html.erb +1 -1
  45. data/app/views/educode_sales/operation_plans/new_weekly.html.erb +7 -7
  46. data/app/views/educode_sales/operation_reports/audit.html.erb +3 -3
  47. data/app/views/educode_sales/operation_reports/edit.html.erb +34 -8
  48. data/app/views/educode_sales/operation_reports/show.html.erb +6 -6
  49. data/app/views/educode_sales/operations/trends.html.erb +2 -2
  50. data/app/views/educode_sales/places/edit.html.erb +1 -3
  51. data/app/views/educode_sales/places/index.html.erb +6 -6
  52. data/app/views/educode_sales/places/index.json.jbuilder +3 -3
  53. data/app/views/educode_sales/places/new.html.erb +1 -2
  54. data/app/views/educode_sales/plans/_monthPlan.html.erb +9 -9
  55. data/app/views/educode_sales/plans/_monthly.html.erb +9 -8
  56. data/app/views/educode_sales/plans/_weekPlan.html.erb +9 -8
  57. data/app/views/educode_sales/plans/_weekly.html.erb +10 -8
  58. data/app/views/educode_sales/plans/edit_month.html.erb +1 -1
  59. data/app/views/educode_sales/plans/edit_week.html.erb +1 -1
  60. data/app/views/educode_sales/plans/edit_weekly.html.erb +7 -7
  61. data/app/views/educode_sales/plans/new_month.html.erb +3 -3
  62. data/app/views/educode_sales/plans/new_monthly.html.erb +7 -7
  63. data/app/views/educode_sales/plans/new_week.html.erb +1 -1
  64. data/app/views/educode_sales/plans/new_weekly.html.erb +7 -7
  65. data/app/views/educode_sales/roles/edit.html.erb +2 -3
  66. data/app/views/educode_sales/roles/index.html.erb +6 -7
  67. data/app/views/educode_sales/roles/new.html.erb +1 -1
  68. data/app/views/educode_sales/sale_reports/audit.html.erb +3 -3
  69. data/app/views/educode_sales/sale_reports/edit.html.erb +33 -7
  70. data/app/views/educode_sales/sale_reports/show.html.erb +2 -2
  71. data/app/views/educode_sales/sale_trends/trends.html.erb +2 -2
  72. data/app/views/educode_sales/sales/index.html.erb +4 -4
  73. data/app/views/educode_sales/sales/index.json.jbuilder +2 -2
  74. data/app/views/educode_sales/sales/operations.html.erb +4 -4
  75. data/app/views/educode_sales/sales/school.html.erb +1 -1
  76. data/app/views/educode_sales/sales/trends.html.erb +2 -6
  77. data/app/views/educode_sales/sales/xschool.html.erb +1 -1
  78. data/app/views/educode_sales/sessions/login.html.erb +2 -2
  79. data/app/views/educode_sales/staffs/edit.html.erb +1 -1
  80. data/app/views/educode_sales/staffs/index.html.erb +6 -6
  81. data/app/views/educode_sales/staffs/new.html.erb +2 -2
  82. data/app/views/educode_sales/teachers/add_courses.html.erb +4 -5
  83. data/app/views/educode_sales/teachers/add_event.html.erb +1 -1
  84. data/app/views/educode_sales/teachers/add_keys.html.erb +58 -13
  85. data/app/views/educode_sales/teachers/edit.html.erb +6 -4
  86. data/app/views/educode_sales/teachers/edit_follow_record.html.erb +1 -1
  87. data/app/views/educode_sales/teachers/import.html.erb +40 -0
  88. data/app/views/educode_sales/teachers/index.html.erb +151 -38
  89. data/app/views/educode_sales/teachers/new.html.erb +4 -4
  90. data/app/views/educode_sales/teachers/new_follow_record.html.erb +1 -1
  91. data/app/views/educode_sales/teachers/search_new.html.erb +1 -1
  92. data/app/views/educode_sales/teachers/show_class.html.erb +1 -1
  93. data/app/views/educode_sales/teachers/show_follow.html.erb +14 -14
  94. data/app/views/layouts/educode_sales/application.html.erb +14 -14
  95. data/config/routes.rb +5 -0
  96. data/db/migrate/20211009031109_add_tel_key_peoples.rb +5 -0
  97. data/db/migrate/20211009063423_add_source_businesses.rb +5 -0
  98. data/db/migrate/20211013060712_create_educode_sales_assign_follow_ups.rb +10 -0
  99. data/lib/educode_sales/version.rb +1 -1
  100. 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 like ?", "%#{params[:q][: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.where(id: params[:q][:area]).pluck(:name)[0]
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
@@ -0,0 +1,6 @@
1
+ module EducodeSales
2
+ class AssignFollowUp < ApplicationRecord
3
+ belongs_to :staff
4
+ belongs_to :follow_up
5
+ end
6
+ end
@@ -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'
@@ -1,7 +1,7 @@
1
1
  module EducodeSales
2
2
  class KeyPerson < ApplicationRecord
3
3
  belongs_to :teacher
4
- belongs_to :attitude, class_name: 'Common'
4
+ belongs_to :attitude, class_name: 'Common', optional: true
5
5
  belongs_to :follow_up, counter_cache: true
6
6
 
7
7
  enum sex: ['男', '女']
@@ -67,8 +67,7 @@
67
67
 
68
68
  //监听提交
69
69
  form.on('submit(data-reset-btn)', function (data) {
70
- console.log(data.field);
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
- <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加活动</button>
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: '/educode_sales/activities',
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: 300,
53
+ width: 400,
52
54
  templet: '#teachers'
53
55
  },
54
56
  {
55
57
  field: 'start_at',
56
- width: 200,
58
+ width: 120,
57
59
  title: '时间',
58
60
  sort: true,
59
61
  },
60
62
  {
61
63
  field: 'days',
62
64
  title: '天数',
63
- width: 200
65
+ width: 100
64
66
  },
65
67
  {
66
68
  field: 'teachers_count',
67
69
  title: '教师数',
68
- width: 200,
70
+ width: 100,
69
71
  templet: '#teachers_count'
70
72
  },
71
73
  {
72
74
  field: 'students_count',
73
75
  title: '学生数',
74
- width: 200
76
+ width: 100
75
77
  },
76
78
  {
77
- title: '操作',
78
- width: 120,
79
- toolbar: '#currentTableBar',
80
- align: "center"
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('/educode_sales/activities/new');
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('/educode_sales/activities/' + id + '/edit');
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('educode_sales/activities/' + data.id, {}, function (res) {
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('/educode_sales/activities/show_teachers');
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('/educode_sales/activities/show_teachers');
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("educode_sales/activities", data.field, function (res) {
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: '/educode_sales/teachers?activity_id=' + parent.activity_id,
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('/educode_sales/teachers/new');
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('/educode_sales/teachers/new');
196
- // var content = miniPage.getHrefContent('/educode_sales/teachers/search_new');
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('/educode_sales/teachers/' + id + '/edit');
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('educode_sales/teachers/' + data.id, {activity_id: activity_id}, function (res) {
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('/educode_sales/operation_plans/new_week');
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('/educode_sales/operation_plans/new_month');
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('/educode_sales/teachers/add_courses?id='+data.id);
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('/educode_sales/teachers/add_event');
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('/educode_sales/teachers/show_class');
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('/educode_sales/teachers/show_follow?id=' + data.id);
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('educode_sales/search?type=department&q=' + value, {}, function (res) {
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("educode_sales/businesses/" + parent.id, {
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
- <div class="layui-input-inline">
20
- <%= select_tag "clazz_id", options_for_select(@clazz, @follow_up.clazz_id), class: 'required' %>
21
- </div>
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">自我小结</label>
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
- request.authPut("educode_sales/follow_ups/<%= @follow_up.id%>", data.field, function (res) {
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("educode_sales/follow_ups/" + parent.follow_up_id + "/add_money", data.field, function (
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: '/educode_sales/follow_ups/' + parent.follow_up_id + '/money_plans',
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('educode_sales/follow_ups/' + parent.follow_up_id + "/update_money", data,
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('educode_sales/follow_ups/' + parent.follow_up_id + "/delete_money?plan_id=" + data.id, {}, function (res) {
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");