educode_sales 0.3.4 → 0.3.8

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 (89) hide show
  1. checksums.yaml +5 -5
  2. data/app/assets/stylesheets/educode_sales/public.css +2 -1
  3. data/app/controllers/educode_sales/businesses_controller.rb +21 -8
  4. data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
  5. data/app/controllers/educode_sales/key_person_controller.rb +1 -1
  6. data/app/controllers/educode_sales/plans_controller.rb +1 -1
  7. data/app/controllers/educode_sales/sale_trends_controller.rb +6 -6
  8. data/app/controllers/educode_sales/teachers_controller.rb +13 -1
  9. data/app/models/educode_sales/key_person.rb +1 -1
  10. data/app/views/educode_sales/activities/edit.html.erb +1 -1
  11. data/app/views/educode_sales/activities/index.html.erb +18 -17
  12. data/app/views/educode_sales/activities/new.html.erb +1 -1
  13. data/app/views/educode_sales/activities/show_teachers.html.erb +12 -12
  14. data/app/views/educode_sales/businesses/edit.html.erb +15 -4
  15. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +11 -5
  16. data/app/views/educode_sales/businesses/edit_plan.html.erb +4 -4
  17. data/app/views/educode_sales/businesses/index.html.erb +162 -23
  18. data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
  19. data/app/views/educode_sales/businesses/new.html.erb +13 -3
  20. data/app/views/educode_sales/businesses/new_follow_record.html.erb +11 -5
  21. data/app/views/educode_sales/businesses/show_follow.html.erb +13 -14
  22. data/app/views/educode_sales/businesses/show_follow_record.html.erb +1 -1
  23. data/app/views/educode_sales/businesses/show_keys.html.erb +1 -1
  24. data/app/views/educode_sales/commons/edit.html.erb +3 -3
  25. data/app/views/educode_sales/commons/index.html.erb +3 -4
  26. data/app/views/educode_sales/commons/new.html.erb +1 -1
  27. data/app/views/educode_sales/follow_ups/teachers.json.jbuilder +3 -2
  28. data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +7 -7
  29. data/app/views/educode_sales/operation_plans/_monthly.html.erb +7 -7
  30. data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +7 -7
  31. data/app/views/educode_sales/operation_plans/_weekly.html.erb +7 -7
  32. data/app/views/educode_sales/operation_plans/edit_month.html.erb +1 -1
  33. data/app/views/educode_sales/operation_plans/edit_week.html.erb +1 -1
  34. data/app/views/educode_sales/operation_plans/new_month.html.erb +1 -1
  35. data/app/views/educode_sales/operation_plans/new_monthly.html.erb +7 -7
  36. data/app/views/educode_sales/operation_plans/new_week.html.erb +1 -1
  37. data/app/views/educode_sales/operation_plans/new_weekly.html.erb +7 -7
  38. data/app/views/educode_sales/operation_reports/audit.html.erb +3 -3
  39. data/app/views/educode_sales/operation_reports/edit.html.erb +7 -7
  40. data/app/views/educode_sales/operation_reports/show.html.erb +6 -6
  41. data/app/views/educode_sales/operations/trends.html.erb +2 -2
  42. data/app/views/educode_sales/places/edit.html.erb +1 -1
  43. data/app/views/educode_sales/places/index.html.erb +5 -6
  44. data/app/views/educode_sales/places/index.json.jbuilder +1 -1
  45. data/app/views/educode_sales/places/new.html.erb +1 -1
  46. data/app/views/educode_sales/plans/_monthPlan.html.erb +7 -7
  47. data/app/views/educode_sales/plans/_monthly.html.erb +7 -7
  48. data/app/views/educode_sales/plans/_weekPlan.html.erb +7 -7
  49. data/app/views/educode_sales/plans/_weekly.html.erb +7 -7
  50. data/app/views/educode_sales/plans/edit_month.html.erb +1 -1
  51. data/app/views/educode_sales/plans/edit_week.html.erb +1 -1
  52. data/app/views/educode_sales/plans/edit_weekly.html.erb +7 -7
  53. data/app/views/educode_sales/plans/new_month.html.erb +3 -3
  54. data/app/views/educode_sales/plans/new_monthly.html.erb +7 -7
  55. data/app/views/educode_sales/plans/new_week.html.erb +1 -1
  56. data/app/views/educode_sales/plans/new_weekly.html.erb +7 -7
  57. data/app/views/educode_sales/roles/edit.html.erb +2 -2
  58. data/app/views/educode_sales/roles/index.html.erb +5 -6
  59. data/app/views/educode_sales/roles/new.html.erb +1 -1
  60. data/app/views/educode_sales/sale_reports/audit.html.erb +3 -3
  61. data/app/views/educode_sales/sale_reports/edit.html.erb +7 -7
  62. data/app/views/educode_sales/sale_reports/show.html.erb +2 -2
  63. data/app/views/educode_sales/sale_trends/trends.html.erb +2 -2
  64. data/app/views/educode_sales/sales/index.html.erb +3 -4
  65. data/app/views/educode_sales/sales/index.json.jbuilder +1 -1
  66. data/app/views/educode_sales/sales/operations.html.erb +3 -4
  67. data/app/views/educode_sales/sales/school.html.erb +1 -1
  68. data/app/views/educode_sales/sales/trends.html.erb +2 -2
  69. data/app/views/educode_sales/sales/xschool.html.erb +1 -1
  70. data/app/views/educode_sales/sessions/login.html.erb +2 -2
  71. data/app/views/educode_sales/staffs/edit.html.erb +1 -1
  72. data/app/views/educode_sales/staffs/index.html.erb +5 -6
  73. data/app/views/educode_sales/staffs/new.html.erb +2 -2
  74. data/app/views/educode_sales/teachers/add_courses.html.erb +4 -4
  75. data/app/views/educode_sales/teachers/add_event.html.erb +1 -1
  76. data/app/views/educode_sales/teachers/add_keys.html.erb +58 -13
  77. data/app/views/educode_sales/teachers/edit.html.erb +6 -4
  78. data/app/views/educode_sales/teachers/edit_follow_record.html.erb +1 -1
  79. data/app/views/educode_sales/teachers/index.html.erb +131 -35
  80. data/app/views/educode_sales/teachers/new.html.erb +4 -3
  81. data/app/views/educode_sales/teachers/new_follow_record.html.erb +1 -1
  82. data/app/views/educode_sales/teachers/search_new.html.erb +1 -1
  83. data/app/views/educode_sales/teachers/show_class.html.erb +1 -1
  84. data/app/views/educode_sales/teachers/show_follow.html.erb +14 -14
  85. data/app/views/layouts/educode_sales/application.html.erb +14 -14
  86. data/db/migrate/20211009031109_add_tel_key_peoples.rb +5 -0
  87. data/db/migrate/20211009063423_add_source_businesses.rb +5 -0
  88. data/lib/educode_sales/version.rb +1 -1
  89. metadata +9 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 286cc2bc6fe4b139e0be58e6d1ed40db0ecc253c
4
- data.tar.gz: 147fed374517bff319fcf9b389b48b84559ec1a3
2
+ SHA256:
3
+ metadata.gz: 2b33617025aa42f341f3b82aec2cba9f62fffd5cf96eb926117e00cf20d1376e
4
+ data.tar.gz: 0a878a706c8c3469f3d5feb3922e6863064f00368c941cdb81bdc89c9068dc74
5
5
  SHA512:
6
- metadata.gz: a12544c3040b935cbaecd392963f6aa06303b1f2d423a42e1d0bc4dd9ed79e5903f0714af90b22059179bda38ac21e0067af95d720d97a3be283f79020ee85cc
7
- data.tar.gz: 6c6614e0910b25315a0370f085bab17eb0c867198f93c7c85b14a22f435278f19d448793b13af6039d0781e5d55075166fa6cbc06886d72132b0f6561d7bbbcd
6
+ metadata.gz: 4a0d3612c32090a93db9b8136cf5250c7cb5151c9ffbdc53b76f1081e9a35bd134f0229f97c27dc0adec5f82666648179c73d7fcee9f8ed97a92b25a41010df7
7
+ data.tar.gz: e2efb528e4276ecc66b1bb6a17a72e49c944e092c73ea26c345718e20f431760709adb86ac073ca0ed5f901c9d6b5d09135c11c5203d511ab034a2714d380b49
@@ -3,7 +3,8 @@
3
3
  margin: 10px 10px 10px 10px;
4
4
  border: 5px solid #ffffff;
5
5
  border-radius: 5px;
6
- background-color: #ffffff
6
+ background-color: #ffffff;
7
+ min-width: 800px;
7
8
  }
8
9
 
9
10
  .layui-breadcrumb>* {
@@ -9,6 +9,18 @@ module EducodeSales
9
9
  format.html do
10
10
  common = Common.find_by(clazz: 'staff_type', name: '销售')
11
11
  @staffs = Staff.joins(:user).where(job_type: common.id).map { |d| [d.user.real_name, d.id]}
12
+ @more = can?(:create, EducodeSales::SalePlan) || can?(:update, EducodeSales::Business) || can?(:destroy, EducodeSales::Business)
13
+ gon.menus = []
14
+ if can?(:create, EducodeSales::SalePlan)
15
+ gon.menus << { title: '添加周计划', event: 'week' }
16
+ gon.menus << { title: '添加月计划', event: 'month' }
17
+ end
18
+ if can?(:update, EducodeSales::Business)
19
+ gon.menus << { title: '编辑', event: 'edit' }
20
+ end
21
+ if can?(:destroy, EducodeSales::Business)
22
+ gon.menus << { title: '删除', event: 'delete' }
23
+ end
12
24
  end
13
25
  format.json do
14
26
  if @current_admin.is_admin?
@@ -25,7 +37,7 @@ module EducodeSales
25
37
  @businesses = Business
26
38
  end
27
39
  end
28
-
40
+
29
41
  @businesses = @businesses
30
42
  if params[:q].present? && params[:q][:name].present?
31
43
  @businesses = @businesses.where("educode_sales_businesses.name like ?", "%#{params[:q][:name]}%")
@@ -43,21 +55,22 @@ module EducodeSales
43
55
  ").where("educode_sales_follow_ups.clazz_id = ?", params[:q][:business_type])
44
56
  end
45
57
  if params[:q].present? && params[:q][:business_step].present?
46
- @businesses = @businesses.joins("
58
+ @businesses = @businesses.joins("
47
59
  JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
48
60
  ").where("educode_sales_follow_ups.stage_id = ?", params[:q][:business_step])
49
61
  end
50
62
  if params[:q].present? && params[:q][:place_id].present?
51
- @businesses = @businesses.joins("
63
+ @businesses = @businesses.joins("
52
64
  JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
53
65
  ").where("educode_sales_follow_ups.place_id = ?", params[:q][:place_id])
54
66
  end
55
67
 
56
68
  if params[:q].present? && params[:q][:area].present?
69
+ p = EducodeSales::Common.find(params[:q][:area]).name
57
70
  @businesses = @businesses.joins("
58
71
  JOIN departments ON educode_sales_businesses.department_id = departments.id
59
72
  JOIN schools ON departments.school_id = schools.id
60
- ").where("province = ?", params[:q][:area])
73
+ ").where("province = ?", p)
61
74
  end
62
75
 
63
76
  if params[:q].present? && params[:q][:date].present?
@@ -73,12 +86,12 @@ module EducodeSales
73
86
  end
74
87
 
75
88
  @business_count = @businesses.count
76
-
89
+
77
90
  @businesses = @businesses.select("
78
91
  educode_sales_businesses.*,
79
92
  last_follow.invitation_at,
80
93
  last_follow.reception_at,
81
- last_follow.total_amount").joins("
94
+ last_follow.total_amount").joins("
82
95
  LEFT JOIN educode_sales_follow_ups AS last_follow ON educode_sales_businesses.last_follow_up_id = last_follow.id
83
96
  ").page(params[:page]).per(params[:limit])
84
97
  end
@@ -87,7 +100,7 @@ module EducodeSales
87
100
 
88
101
  def create
89
102
  department = Department.find(params[:department_id])
90
- business = @current_admin.businesses.build(name: params[:name], department_id: department.id)
103
+ business = @current_admin.businesses.build(name: params[:name], department_id: department.id, source: params[:source])
91
104
  if business.save
92
105
  render_success
93
106
  else
@@ -109,7 +122,7 @@ module EducodeSales
109
122
  def update
110
123
  business = Business.find(params[:id])
111
124
  department = Department.find(params[:department_id])
112
- if business.update(name: params[:name], department_id: department.id)
125
+ if business.update(name: params[:name], department_id: department.id, source: params[:source])
113
126
  render_success
114
127
  else
115
128
  render_failure business
@@ -151,7 +151,7 @@ module EducodeSales
151
151
  end
152
152
 
153
153
  def teacher_params
154
- params.permit(:professional_title, :job, :attitude_id, :sex, :birth_date, :remark)
154
+ params.permit(:professional_title, :job, :attitude_id, :sex, :birth_date, :remark, :tel)
155
155
  end
156
156
  end
157
157
  end
@@ -23,7 +23,7 @@ module EducodeSales
23
23
 
24
24
  private
25
25
  def key_params
26
- params.permit(:attitude_id, :sex, :birth_date, :remark)
26
+ params.permit(:attitude_id, :sex, :birth_date, :remark, :tel)
27
27
  end
28
28
  end
29
29
  end
@@ -59,7 +59,7 @@ module EducodeSales
59
59
  def create
60
60
  plan = @current_admin.sale_plans.build(plan_params)
61
61
  plan.month = params["month"] + "-1"
62
- plan.business_id = @current_admin.businesses.find(params[:business_id]).id
62
+ plan.business = @current_admin.businesses.find_by(id: params[:business_id])
63
63
  if plan.save
64
64
  render_success
65
65
  else
@@ -10,16 +10,16 @@ module EducodeSales
10
10
  @years = (1..(Time.now.year - 2020)).map { |d| 2020 + d }
11
11
  year_time = "#{@year}-01-01 00:00:00"
12
12
  @sale_trend = SaleTrend.find_or_create_by(year: @year)
13
- @business_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ?", year_time).sum(:total_amount)
13
+ @business_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ?", year_time).sum(:total_amount).round(2)
14
14
  stage_ids = Common.where(clazz: '商机阶段', name: ['已中标','已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
15
- @goal_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.stage_id IN (?)", year_time, stage_ids).sum(:total_amount)
15
+ @goal_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.stage_id IN (?)", year_time, stage_ids).sum(:total_amount).round(2)
16
16
  s_stage_ids = Common.where(clazz: '商机阶段', name: ['已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
17
- @service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.stage_id IN (?)", year_time, s_stage_ids).sum(:total_amount)
18
- @return_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ?", year_time).sum(:return_money)
17
+ @service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.stage_id IN (?)", year_time, s_stage_ids).sum(:total_amount).round(2)
18
+ @return_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ?", year_time).sum(:return_money).round(2)
19
19
  a = Common.where(clazz: '商机类型', name: 'A类').pluck(:id)
20
- @a_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.clazz_id IN (?)", year_time, a).sum(:total_amount)
20
+ @a_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.clazz_id IN (?)", year_time, a).sum(:total_amount).round(2)
21
21
  b = Common.where(clazz: '商机类型', name: 'B类').pluck(:id)
22
- @b_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.clazz_id IN (?)", year_time, b).sum(:total_amount)
22
+ @b_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.clazz_id IN (?)", year_time, b).sum(:total_amount).round(2)
23
23
  end
24
24
 
25
25
  def sale_trends
@@ -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?
@@ -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
@@ -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: ['男', '女']
@@ -68,7 +68,7 @@
68
68
  //监听提交
69
69
  form.on('submit(data-reset-btn)', function (data) {
70
70
  console.log(data.field);
71
- request.authPut("educode_sales/activities/" + <%= @activity.id %>, data.field, function (res) {
71
+ request.authPut("missions/activities/" + <%= @activity.id %>, data.field, function (res) {
72
72
  if (res.success === false) {
73
73
  layer.alert(res.msg)
74
74
  } else {
@@ -6,8 +6,9 @@
6
6
  <% end %>
7
7
  </div>
8
8
  </script>
9
-
9
+ <div class="min-height-table">
10
10
  <table class="layui-hide" id="activities_table" lay-filter="activities_table"></table>
11
+ </div>
11
12
 
12
13
  <script type="text/html" id="currentTableBar">
13
14
  <% if can? :update, EducodeSales::Activity %>
@@ -35,7 +36,7 @@
35
36
 
36
37
  table.render({
37
38
  elem: '#activities_table',
38
- url: '/educode_sales/activities',
39
+ url: '/missions/activities',
39
40
  toolbar: '#activity_toolbar',
40
41
  defaultToolbar: [],
41
42
  cols: [
@@ -48,40 +49,40 @@
48
49
  {
49
50
  field: 'name',
50
51
  title: '活动名称',
51
- width: 300,
52
+ width: 400,
52
53
  templet: '#teachers'
53
54
  },
54
55
  {
55
56
  field: 'start_at',
56
- width: 200,
57
+ width: 120,
57
58
  title: '时间',
58
59
  sort: true,
59
60
  },
60
61
  {
61
62
  field: 'days',
62
63
  title: '天数',
63
- width: 200
64
+ width: 100
64
65
  },
65
66
  {
66
67
  field: 'teachers_count',
67
68
  title: '教师数',
68
- width: 200,
69
+ width: 100,
69
70
  templet: '#teachers_count'
70
71
  },
71
72
  {
72
73
  field: 'students_count',
73
74
  title: '学生数',
74
- width: 200
75
+ width: 100
75
76
  },
76
77
  {
77
- title: '操作',
78
- width: 120,
79
- toolbar: '#currentTableBar',
80
- align: "center"
78
+ title: '操作',
79
+ width: 120,
80
+ fixed: 'right',
81
+ toolbar: '#currentTableBar',
82
+ align: "center"
81
83
  }
82
84
  ]
83
85
  ],
84
- height: 700,
85
86
  limit: 20,
86
87
  page: true
87
88
  });
@@ -99,7 +100,7 @@
99
100
  })
100
101
  table.on('toolbar(activities_table)', function (obj) {
101
102
  if (obj.event === 'add') { // 监听添加操作
102
- var content = miniPage.getHrefContent('/educode_sales/activities/new');
103
+ var content = miniPage.getHrefContent('/missions/activities/new');
103
104
  var openWH = miniPage.getOpenWidthHeight();
104
105
  index = layer.open({
105
106
  title: '添加活动',
@@ -124,7 +125,7 @@
124
125
  var data = obj.data;
125
126
  var id = data.id
126
127
  if (obj.event === 'edit') {
127
- var content = miniPage.getHrefContent('/educode_sales/activities/' + id + '/edit');
128
+ var content = miniPage.getHrefContent('/missions/activities/' + id + '/edit');
128
129
  var openWH = miniPage.getOpenWidthHeight();
129
130
  var index = layer.open({
130
131
  title: '编辑',
@@ -148,14 +149,14 @@
148
149
  return false;
149
150
  } else if (obj.event === 'delete') {
150
151
  layer.confirm('确定删除' + data.name, function (index) {
151
- request.delete('educode_sales/activities/' + data.id, {}, function (res) {
152
+ request.delete('missions/activities/' + data.id, {}, function (res) {
152
153
  layer.close(index);
153
154
  table.reload("activities_table")
154
155
  })
155
156
  });
156
157
  } else if (obj.event === 'teachers') {
157
158
  activity_id = obj.data.id
158
- var content = miniPage.getHrefContent('/educode_sales/activities/show_teachers');
159
+ var content = miniPage.getHrefContent('/missions/activities/show_teachers');
159
160
  openWH = miniPage.getOpenWidthHeight();
160
161
  index = layer.open({
161
162
  title: '活动列表/' + data.name,
@@ -177,7 +178,7 @@
177
178
  }
178
179
  else if (obj.event === 'teachers_count') {
179
180
  activity_id = obj.data.id
180
- content = miniPage.getHrefContent('/educode_sales/activities/show_teachers');
181
+ content = miniPage.getHrefContent('/missions/activities/show_teachers');
181
182
  openWH = miniPage.getOpenWidthHeight();
182
183
  index2 = layer.open({
183
184
  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
  }
@@ -16,9 +16,15 @@
16
16
  <br>
17
17
  <div class="layui-inline">
18
18
  <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>
19
+ <%if EducodeSales::FollowUp.where(business_id: @follow_up.business.id,clazz_id: EducodeSales::Common.find_by(name: "O类").id).count >= 2 %>
20
+ <div class="layui-input-inline">
21
+ <%= select_tag "clazz_id", options_for_select([['O类',EducodeSales::Common.find_by(name: "O类").id]]),:disabled => true, class: 'required' %>
22
+ </div>
23
+ <%else %>
24
+ <div class="layui-input-inline">
25
+ <%= select_tag "clazz_id", options_for_select(@clazz, @follow_up&.clazz_id), class: 'required' %>
26
+ </div>
27
+ <%end %>
22
28
  </div>
23
29
  <div class="layui-inline">
24
30
  <label class="layui-form-label required">项目阶段</label>
@@ -69,7 +75,7 @@
69
75
  <span style="margin-top: 10px; float:left;">%</span>
70
76
  </div>
71
77
  <div class="layui-form-item layui-form-text">
72
- <label class="layui-form-label required">自我小结</label>
78
+ <label class="layui-form-label required">商机说明</label>
73
79
  <div class="layui-input-block">
74
80
  <textarea name="description" lay-verify="required" placeholder="此处可以填写:
75
81
  1、有无预算;
@@ -120,7 +126,7 @@
120
126
 
121
127
  form.render();
122
128
  form.on('submit(update_follow_up)', function (data) {
123
- request.authPut("educode_sales/follow_ups/<%= @follow_up.id%>", data.field, function (res) {
129
+ request.authPut("missions/follow_ups/<%= @follow_up.id%>", data.field, function (res) {
124
130
  if (res.success == false) {
125
131
  layer.alert(res.msg)
126
132
  } 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");