educode_sales 0.3.9 → 0.4.3

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/indexlogo.png +0 -0
  3. data/app/assets/images/educode_sales/logo.png +0 -0
  4. data/app/controllers/educode_sales/businesses_controller.rb +23 -3
  5. data/app/controllers/educode_sales/follow_ups_controller.rb +2 -2
  6. data/app/controllers/educode_sales/operation_plans_controller.rb +2 -2
  7. data/app/controllers/educode_sales/operation_reports_controller.rb +2 -2
  8. data/app/controllers/educode_sales/places_controller.rb +1 -1
  9. data/app/controllers/educode_sales/plans_controller.rb +2 -2
  10. data/app/controllers/educode_sales/sale_reports_controller.rb +2 -2
  11. data/app/controllers/educode_sales/sale_trends_controller.rb +3 -3
  12. data/app/controllers/educode_sales/sales_controller.rb +1 -1
  13. data/app/controllers/educode_sales/teachers_controller.rb +21 -9
  14. data/app/models/educode_sales/common.rb +2 -0
  15. data/app/models/educode_sales/teacher.rb +1 -1
  16. data/app/models/educode_sales/teacher_follow.rb +1 -0
  17. data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
  18. data/app/views/educode_sales/businesses/edit.html.erb +2 -2
  19. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +6 -7
  20. data/app/views/educode_sales/businesses/index.html.erb +40 -5
  21. data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
  22. data/app/views/educode_sales/businesses/new_follow_record.html.erb +8 -8
  23. data/app/views/educode_sales/businesses/show_follow.html.erb +9 -9
  24. data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -1
  25. data/app/views/educode_sales/businesses/show_follow_record.html.erb +16 -4
  26. data/app/views/educode_sales/operation_plans/new_month.html.erb +2 -0
  27. data/app/views/educode_sales/plans/new_month.html.erb +1 -0
  28. data/app/views/educode_sales/teachers/import.html.erb +1 -0
  29. data/app/views/educode_sales/teachers/index.html.erb +1 -1
  30. data/app/views/educode_sales/teachers/index.json.jbuilder +2 -3
  31. data/app/views/educode_sales/teachers/show_follow.json.jbuilder +3 -2
  32. data/app/views/layouts/educode_sales/application.html.erb +110 -36
  33. data/app/views/layouts/educode_sales/login.html.erb +1 -1
  34. data/db/migrate/20211018054256_add_extras_to_commons.rb +6 -0
  35. data/lib/educode_sales/version.rb +1 -1
  36. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 226066d76e63313c5fc919fdb52fe30d4cd5fbe1e27f5aed961018d4fc03617c
4
- data.tar.gz: 66abf2859226856528e9511001e677bbb631f4fe626354994e05d25434992535
3
+ metadata.gz: fb60117f75870a9280a833425b4a29bac7172e70da78b061fa41ea92abc7c985
4
+ data.tar.gz: 203aaf0c96f4e246ab734cd3dc4844542563404f6939bc2613ae286fe37d8be7
5
5
  SHA512:
6
- metadata.gz: f844aa32c8352a830b2c24622f90d0b23801304a2aa4ae00c2080050f64ec5f17993e81802e8d9b3c228e74ff79ffb46880a6f56b174f859dc35b792ed15715c
7
- data.tar.gz: 1f7697035a3b0c9e305a08d59000e215739e0fa7dfd548b01f1fbc05aba79c466e1eb0499a5e9d1ab2e8e07682ddd4868a8348956d217d3cfc8ae4e8889dd5d6
6
+ metadata.gz: 688e3848050cd08d8598e8434e0039db4aa6fb0972f3bd558ad026b68462080fe898802082f94dfcf67b7e3a765631ecc39befad5382028c30c0b4259fb4e045
7
+ data.tar.gz: 5ed1048e97b6cf03f127040239eb7a7c8011b72edf8a94deb42d65a829a4e7ed15b98ecb94bdeb662dc6dc66efe3fff6e22cfeef28d819082a8f8ce9879cfeee
@@ -29,10 +29,12 @@ module EducodeSales
29
29
  level = @current_admin.role.role_areas.find_by(clazz: '商机管理').level
30
30
  case level
31
31
  when '自己'
32
- @businesses = Business.where(staff_id: @current_admin.id)
32
+ business_ids = Business.joins(last_follow_up: :assign_follow_ups).where("educode_sales_assign_follow_ups.staff_id = ?", @current_admin.id).pluck(:id)
33
+ @businesses = Business.where("educode_sales_businesses.staff_id = ? OR educode_sales_businesses.id in (?)", @current_admin.id, business_ids)
33
34
  when '区域'
34
35
  school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id)
35
- @businesses = Business.joins("JOIN departments ON educode_sales_businesses.department_id = departments.id").where("departments.school_id in (?) OR educode_sales_businesses.staff_id = #{@current_admin.id}", school_ids)
36
+ business_ids = Business.joins(last_follow_up: :assign_follow_ups).where("educode_sales_assign_follow_ups.staff_id = ?", @current_admin.id).pluck(:id)
37
+ @businesses = Business.joins("JOIN departments ON educode_sales_businesses.department_id = departments.id").where("departments.school_id in (?) OR educode_sales_businesses.staff_id = #{@current_admin.id} OR educode_sales_businesses.id in (?)", school_ids, business_ids)
36
38
  else
37
39
  @businesses = Business
38
40
  end
@@ -78,7 +80,6 @@ module EducodeSales
78
80
  @businesses = @businesses.where("educode_sales_businesses.created_at > ? AND educode_sales_businesses.created_at < ?", date[0], date[1])
79
81
  end
80
82
 
81
-
82
83
  if params[:sort].present? && params[:sort][:field]
83
84
  @businesses = @businesses.order("#{params[:sort][:field]} #{params[:sort][:order]}")
84
85
  else
@@ -87,6 +88,18 @@ module EducodeSales
87
88
 
88
89
  @business_count = @businesses.count
89
90
 
91
+ if params[:q].present? && params[:q][:all].present?
92
+ @businesses = Business.all
93
+ end
94
+
95
+ if params[:q].present? && params[:q][:mine].present?
96
+ ids = AssignFollowUp.where(staff_id: @current_admin.id).pluck(:follow_up_id)
97
+ ids1 = FollowUp.where(id: ids).pluck(:business_id)
98
+ ids2 = Business.where(staff_id: @current_admin.id).pluck(:id)
99
+ # @businesses = Business.where(id: ids1+ids2)
100
+ @businesses =Business.where("educode_sales_businesses.id in (?) or educode_sales_businesses.staff_id = ?", ids1, @current_admin.id)
101
+ end
102
+
90
103
  @businesses = @businesses.select("
91
104
  educode_sales_businesses.*,
92
105
  last_follow.invitation_at,
@@ -175,10 +188,16 @@ module EducodeSales
175
188
 
176
189
  def new_follow_record
177
190
  load_business
191
+ @o_name = EducodeSales::Common.find_by(extras: EducodeSales::Common::OTYPE)&.name
178
192
  @clazz = Common.where(clazz: 'business_type').order("position").pluck(:name, :id)
179
193
  @stages = Common.where(clazz: 'business_step').order("position").pluck(:name, :id)
180
194
  @places = Place.order("created_at desc").pluck(:name, :id)
181
195
  @last_follow_up = @business.last_follow_up
196
+ if @last_follow_up
197
+ gon.sales = @last_follow_up.assign_follow_ups.map do |d|
198
+ {value: d.staff_id, name: d.staff.user.full_name}
199
+ end
200
+ end
182
201
  render layout: false
183
202
  end
184
203
 
@@ -194,6 +213,7 @@ module EducodeSales
194
213
  end
195
214
 
196
215
  def edit_follow_record
216
+ @o_name = EducodeSales::Common.find_by(extras: EducodeSales::Common::OTYPE)&.name
197
217
  @follow_up = FollowUp.find(params[:follow_up_id])
198
218
  @clazz = Common.where(clazz: 'business_type').order("position").pluck(:name, :id)
199
219
  @stages = Common.where(clazz: 'business_step').order("position").pluck(:name, :id)
@@ -11,7 +11,7 @@ module EducodeSales
11
11
  follow_up.assign_follow_ups.build(staff_id: d)
12
12
  end
13
13
 
14
- follow_up.profit_amount = follow_up.actual_amount * (100-follow_up.divide_rate.to_i) * 0.01 if follow_up.actual_amount
14
+ follow_up.profit_amount = follow_up.actual_amount - (follow_up.divide_amount.to_i) if follow_up.actual_amount
15
15
  if follow_up.save
16
16
  if @business.last_follow_up.present?
17
17
  @business.last_follow_up.key_person.each do |d|
@@ -54,7 +54,7 @@ module EducodeSales
54
54
  assign_follow_ups << follow_up.assign_follow_ups.find_or_initialize_by(staff_id: d)
55
55
  end
56
56
  follow_up.assign_follow_ups = assign_follow_ups
57
- follow_up.profit_amount = follow_up.actual_amount * (100-follow_up.divide_rate.to_i) * 0.01 if follow_up.actual_amount
57
+ follow_up.profit_amount = follow_up.actual_amount - (follow_up.divide_amount.to_i) * 0.01 if follow_up.actual_amount
58
58
  if follow_up.save
59
59
  render_success
60
60
  else
@@ -20,8 +20,8 @@ module EducodeSales
20
20
  when '自己'
21
21
  @sale_plans = OperationPlan.where(staff_id: @current_admin.id)
22
22
  when '区域'
23
- staff_ids = Staff.joins(department: :school).where("school.province in ?", @current_admin.areas.pluck(:name)).pluck(:id)
24
- @sale_plans = OperationPlan.where("staff_id in ?", staff_ids)
23
+ staff_ids = Staff.joins(user: [user_extension: [department: :school]]).where("schools.province in (?)", @current_admin.areas.pluck(:name)).pluck(:id)
24
+ @sale_plans = OperationPlan.where("staff_id in (?)", staff_ids)
25
25
  else
26
26
  @sale_plans = OperationPlan
27
27
  end
@@ -17,8 +17,8 @@ module EducodeSales
17
17
  when '自己'
18
18
  @sale_reports = OperationReport.where(staff_id: @current_admin.id)
19
19
  when '区域'
20
- staff_ids = Staff.joins(department: :school).where("school.province in ?", staff.areas.pluck(:name)).pluck(:id)
21
- @sale_reports = OperationReport.where("staff_id in ?", staff_ids)
20
+ staff_ids = Staff.joins(user: [user_extension: [department: :school]]).where("schools.province in (?)", @current_admin.areas.pluck(:name)).pluck(:id)
21
+ @sale_reports = OperationReport.where("staff_id in (?)", staff_ids)
22
22
  else
23
23
  @sale_reports = OperationReport
24
24
  end
@@ -9,7 +9,7 @@ module EducodeSales
9
9
  end
10
10
  format.json do
11
11
  @places = Place.page(params[:page]).per(params[:limit])
12
- @x = Common.find_by(clazz: '商机类型', name: 'X类')&.id
12
+ @x = Common.find_by(extras: EducodeSales::Common::XTYPE)&.id
13
13
  @stage_ids = Common.where(clazz: '商机阶段', name: ['已中标','已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
14
14
  end
15
15
  end
@@ -21,8 +21,8 @@ module EducodeSales
21
21
  when '自己'
22
22
  @sale_plans = SalePlan.where(staff_id: @current_admin.id)
23
23
  when '区域'
24
- staff_ids = Staff.joins(department: :school).where("school.province in ?", staff.areas.pluck(:name)).pluck(:id)
25
- @sale_plans = SalePlan.where("staff_id in ?", staff_ids)
24
+ staff_ids = Staff.joins(user: [user_extension: [department: :school]]).where("schools.province in (?)", @current_admin.areas.pluck(:name)).pluck(:id)
25
+ @sale_plans = SalePlan.where("staff_id in (?)", staff_ids)
26
26
  else
27
27
  @sale_plans = SalePlan
28
28
  end
@@ -50,8 +50,8 @@ module EducodeSales
50
50
  when '自己'
51
51
  @sale_reports = SaleReport.where(staff_id: @current_admin.id)
52
52
  when '区域'
53
- staff_ids = Staff.joins(department: :school).where("school.province in ?", staff.areas.pluck(:name)).pluck(:id)
54
- @sale_reports = SaleReport.where("staff_id in ?", staff_ids)
53
+ staff_ids = Staff.joins(user: [user_extension: [department: :school]]).where("schools.province in (?)", @current_admin.areas.pluck(:name)).pluck(:id)
54
+ @sale_reports = SaleReport.where("staff_id in (?)", staff_ids)
55
55
  else
56
56
  @sale_reports = SaleReport
57
57
  end
@@ -9,15 +9,15 @@ module EducodeSales
9
9
  @year = params[:year] ? params[:year] : Time.now.year
10
10
  @years = (1..(Time.now.year - 2020)).map { |d| 2020 + d }
11
11
  year_time = "#{@year}-01-01 00:00:00"
12
- x = Common.find_by(clazz: '商机类型', name: 'X类')&.id
13
- o = Common.find_by(clazz: '商机类型', name: 'O类')&.id
12
+ x = Common.find_by(extras: EducodeSales::Common::XTYPE)&.id
13
+ o = Common.find_by(extras: EducodeSales::Common::OTYPE)&.id
14
14
  @sale_trend = SaleTrend.find_or_create_by(year: @year)
15
15
  @business_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.clazz_id != ?", x, o).where("educode_sales_follow_ups.created_at >= ?", year_time).sum(:total_amount).round(2)
16
16
  stage_ids = Common.where(clazz: '商机阶段', name: ['已中标','已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
17
17
  @goal_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.created_at >= ? AND educode_sales_follow_ups.stage_id IN (?)", year_time, stage_ids).sum(:total_amount).round(2)
18
18
  s_stage_ids = Common.where(clazz: '商机阶段', name: ['已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
19
19
  @service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).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)
20
- @return_amount = Business.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_money_plans.date_at >= ?", year_time).sum(:return_money).round(2)
20
+ @return_amount = Business.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_money_plans.date_at >= ?", year_time).sum(:amount).round(2)
21
21
  a = Common.where(clazz: '商机类型', name: 'A类').pluck(:id)
22
22
  @a_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id IN (?)", a).sum(:total_amount).round(2)
23
23
  b = Common.where(clazz: '商机类型', name: 'B类').pluck(:id)
@@ -14,7 +14,7 @@ module EducodeSales
14
14
  common = Common.find_by(clazz: 'staff_type', name: '销售')
15
15
  @a_clazz = Common.find_by(clazz: 'business_type', name: 'A类')
16
16
  @b_clazz = Common.find_by(clazz: 'business_type', name: 'B类')
17
- @x = Common.find_by(clazz: 'business_type', name: 'X类')
17
+ @x = Common.find_by(extras: EducodeSales::Common::XTYPE)
18
18
  @step_ids = Common.where(name: %w(已中标 已签单 已验收 回款中 服务中 已结束), clazz: 'business_step').pluck(:id)
19
19
 
20
20
  @staffs = Staff.where(job_type: common.id).page(params[:page]).per(params[:limit])
@@ -61,7 +61,10 @@ module EducodeSales
61
61
  @teachers = @teachers.where("educode_sales_teachers.regist_at like ?", "%#{params[:q][:regist_at]}%")
62
62
  end
63
63
  if params[:q].present? && params[:q][:attitude].present?
64
- @teachers = @teachers.where("educode_sales_teachers.attitude_id = ?", "#{params[:q][:attitude]}")
64
+ # @teachers = @teachers.where("educode_sales_teachers.attitude_id = ?", "#{params[:q][:attitude]}")
65
+ @teachers = @teachers.joins("
66
+ JOIN educode_sales_teacher_follows ON educode_sales_teachers.follow_up_id = educode_sales_teacher_follows.id
67
+ ").where("educode_sales_teacher_follows.attitude_id = ?", params[:q][:attitude])
65
68
  end
66
69
  if params[:q].present? && params[:q][:teacher_source].present?
67
70
  @teachers = @teachers.where("educode_sales_teachers.source_id = ?", "#{params[:q][:teacher_source]}")
@@ -82,10 +85,10 @@ module EducodeSales
82
85
  end
83
86
  if params[:q].present? && params[:q][:date].present?
84
87
  date = params[:q][:date].split(" - ")
85
- @teachers = @teachers.where("created_at > ? AND created_at < ?", date[0], date[1])
88
+ @teachers = @teachers.where("educode_sales_teachers.created_at > ? AND educode_sales_teachers.created_at < ?", date[0], date[1])
86
89
  end
87
90
 
88
- @teachers = @teachers.order("created_at desc").page(params[:page]).per(params[:limit])
91
+ @teachers = @teachers.order("educode_sales_teachers.created_at desc").page(params[:page]).per(params[:limit])
89
92
 
90
93
  end
91
94
  end
@@ -111,15 +114,24 @@ module EducodeSales
111
114
  teacher.regist_at = Time.now
112
115
  end
113
116
 
114
- if params[:activity_id].present? && params[:user_id].present?
117
+ unless params[:activity_id].present?
118
+ return render json: {msg: '该教师已存在', success: false } if EducodeSales::Teacher.find_by(department_id: params[:department_id],name: params[:name])
119
+ end
120
+
121
+ if params[:activity_id].present?
122
+ if params[:user_id].present?
115
123
  # 把老师添加到活动列表,提取判断下老师列表是否存在
116
- find_teacher = Teacher.find_by(user_id: params[:user_id])
117
- if find_teacher
118
- teacher = find_teacher
124
+ find_teacher = Teacher.find_by(user_id: params[:user_id])
125
+ if find_teacher
126
+ teacher = find_teacher
127
+ end
128
+ else
129
+ _teacher = EducodeSales::Teacher.find_by(department_id: params[:department_id],name: params[:name])
130
+ teacher = _teacher if _teacher.present?
119
131
  end
132
+ return render json: {msg: '该教师已在活动中', success: false } if teacher && teacher.activity_teachers.find_by(activity_id: params[:activity_id]).present?
120
133
  end
121
134
  if params[:activity_id].present?
122
- return render json: {msg: '该教师已在活动中', success: false } if teacher.activity_teachers.find_by(activity_id: params[:activity_id]).present?
123
135
  teacher.activity_teachers.build(activity_id: params[:activity_id])
124
136
  end
125
137
 
@@ -268,7 +280,7 @@ module EducodeSales
268
280
  def course_list
269
281
  user = User.find_by(id: params[:user_id])
270
282
  if user
271
- @courses = Course.joins(:course_members).where(course_members: {user_id: user.id}).distinct("course_id").page(params[:page]).per(params[:limit])
283
+ @courses = Course.joins(:course_members).where(course_members: {user_id: user.id}).where("is_delete = 0 and role != 4 and excellent = 0 and is_hidden = 0").where("start_date is null or start_date <= '#{Date.today}'").distinct("course_id").page(params[:page]).per(params[:limit])
272
284
  else
273
285
  @courses = Course.none
274
286
  end
@@ -2,6 +2,8 @@ module EducodeSales
2
2
  class Common < ApplicationRecord
3
3
  acts_as_list scope: [:clazz]
4
4
 
5
+ XTYPE = "x_class"
6
+ OTYPE = 'o_class'
5
7
 
6
8
  validates :name, uniqueness: {scope: :clazz, message: '已存在'}
7
9
 
@@ -37,7 +37,7 @@ module EducodeSales
37
37
 
38
38
  def students_count
39
39
  if user_id.present?
40
- course_ids = CourseMember.where.not(role: "STUDENT").where(user_id: user_id).pluck(:course_id)
40
+ course_ids = Course.joins(:course_members).where(course_members: {user_id: user_id}).where("is_delete = 0 and role != 4 and excellent = 0 and is_hidden = 0").where("start_date is null or start_date <= '#{Date.today}'").distinct("course_id").pluck(:course_id)
41
41
  CourseMember.where(course_id: course_ids, role: "STUDENT").count
42
42
  else
43
43
  0
@@ -2,5 +2,6 @@ module EducodeSales
2
2
  class TeacherFollow < ApplicationRecord
3
3
  belongs_to :teacher, counter_cache: true
4
4
  belongs_to :staff
5
+ belongs_to :attitude, class_name: 'Common'
5
6
  end
6
7
  end
@@ -15,7 +15,7 @@
15
15
  {{# if (d.login) { }}
16
16
  <a href="<%= base_url%>/users/{{d.login}}" class="layui-table-link" target="_blank">{{ d.name }}</a>
17
17
  {{# } else {}}
18
- <a href="<%= base_url%>/users/{{d.login}}" class="">{{ d.name }}</a>
18
+ <a href="javascript:;" class="">{{ d.name }}</a>
19
19
  {{# }}}
20
20
  </script>
21
21
  <script type="text/html" id="courses">
@@ -2,9 +2,9 @@
2
2
  <div class="layui-form layuimini-form">
3
3
  <div class="layui-form-item" style="padding: 25px">
4
4
  <div class="layui-inline">
5
- <label class="layui-form-label required">名称</label>
5
+ <label class="layui-form-label required">商机名称</label>
6
6
  <div class="layui-input-block">
7
- <input type="text" name="name" autocomplete="off" lay-verify="required" class="layui-input" value="<%= @business.name %>">
7
+ <input type="text" name="name" autocomplete="off" lay-verify="required" class="layui-input" value="<%= @business.name %>" style="width: 300px;">
8
8
  </div>
9
9
  </div>
10
10
  <div class="layui-inline">
@@ -17,9 +17,9 @@
17
17
  <br>
18
18
  <div class="layui-inline">
19
19
  <label class="layui-form-label required">项目类型</label>
20
- <%if EducodeSales::FollowUp.where(business_id: @follow_up.business.id,clazz_id: EducodeSales::Common.find_by(name: "O类").id).count >= 2 %>
20
+ <%if EducodeSales::FollowUp.where(business_id: @follow_up.business.id,clazz_id: EducodeSales::Common.find_by(name: @o_name).id).count >= 2 %>
21
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' %>
22
+ <%= select_tag "clazz_id", options_for_select([[@o_name,EducodeSales::Common.find_by(name: @o_name).id]]),:disabled => true, class: 'required' %>
23
23
  </div>
24
24
  <%else %>
25
25
  <div class="layui-input-inline">
@@ -56,9 +56,9 @@
56
56
  </div>
57
57
  </div>
58
58
  <div class="layui-inline">
59
- <label class="layui-form-label">实额</label>
59
+ <label class="layui-form-label">合同额</label>
60
60
  <div class="layui-input-inline">
61
- <input name="actual_amount" type="number" class="layui-input" value="<%= @follow_up.actual_amount %>">
61
+ <input name="actual_amount" type="number" class="layui-input" placeholder="本单位的签单金额" value="<%= @follow_up.actual_amount %>">
62
62
  </div>
63
63
  </div>
64
64
  <br>
@@ -69,11 +69,10 @@
69
69
  </div>
70
70
  </div>
71
71
  <div class="layui-inline">
72
- <label class="layui-form-label">分成</label>
72
+ <label class="layui-form-label">渠道分成</label>
73
73
  <div class="layui-input-inline">
74
74
  <input name="divide_rate" class="layui-input" value="<%= @follow_up.divide_rate%>">
75
75
  </div>
76
- <span style="margin-top: 10px; float:left;">%</span>
77
76
  </div>
78
77
  <div class="layui-form-item">
79
78
  <label class="layui-form-label">指定跟进人</label>
@@ -82,7 +81,7 @@
82
81
  </div>
83
82
  </div>
84
83
  <div class="layui-form-item layui-form-text">
85
- <label class="layui-form-label required">商机说明</label>
84
+ <label class="layui-form-label required">最新进展</label>
86
85
  <div class="layui-input-block">
87
86
  <textarea name="description" lay-verify="required" placeholder="此处可以填写:
88
87
  1、有无预算;
@@ -68,6 +68,8 @@
68
68
  <% if can? :create, EducodeSales::Business %>
69
69
  <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加商机</button>
70
70
  <% end %>
71
+ <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="mine"> 我的商机</button>
72
+ <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="all"> 全部商机</button>
71
73
  </div>
72
74
  </script>
73
75
  <script type="text/html" id="currentTableBar">
@@ -150,7 +152,7 @@
150
152
  // },
151
153
  {
152
154
  field: 'clazz',
153
- width: 60,
155
+ width: 120,
154
156
  title: '类型'
155
157
  },
156
158
  {
@@ -195,7 +197,12 @@
195
197
  {
196
198
  field: 'last_follow_person',
197
199
  width: 120,
198
- title: '跟进人'
200
+ title: '最新跟进人'
201
+ },
202
+ {
203
+ field: 'latest_time',
204
+ width: 200,
205
+ title: '最新跟进时间'
199
206
  },
200
207
  {
201
208
  title: '操作',
@@ -237,7 +244,7 @@
237
244
  edit(id);
238
245
  break;
239
246
  case 'delete':
240
- deleteBusiness(id, elem.data['name']);
247
+ deleteBusiness(id, elem.data('name'));
241
248
  break;
242
249
  }
243
250
  }
@@ -300,7 +307,7 @@
300
307
  }
301
308
 
302
309
  function deleteBusiness(id, name) {
303
- layer.confirm('确定删除' + name, function (index) {
310
+ layer.confirm('确定删除' + name, function (index) {
304
311
  request.delete('missions/businesses/' + id, {}, function (res) {
305
312
  layer.close(index);
306
313
  table.reload("businesses_table")
@@ -361,7 +368,35 @@
361
368
  $(window).on("resize", function () {
362
369
  layer.full(index);
363
370
  });
364
- } else if (obj.event === 'delete') { // 监听删除操作
371
+ } else if (obj.event === 'all') {
372
+ search = {"all":"1"}
373
+ table.reload('businesses_table', {
374
+ page: {
375
+ curr: 1
376
+ },
377
+ where: {q: search, sort: sort}
378
+ }, 'data');
379
+ form.val('search_form', {
380
+ name: '', department: '', staff_id: '', business_type: '', business_step: '',
381
+ place_id: '', date: '', area: ''
382
+ })
383
+ return false;
384
+ }
385
+ else if (obj.event === 'mine') {
386
+ search = {"mine":"1"}
387
+ table.reload('businesses_table', {
388
+ page: {
389
+ curr: 1
390
+ },
391
+ where: {q: search, sort: sort}
392
+ }, 'data');
393
+ form.val('search_form', {
394
+ name: '', department: '', staff_id: '', business_type: '', business_step: '',
395
+ place_id: '', date: '', area: ''
396
+ })
397
+ return false;
398
+ }
399
+ else if (obj.event === 'delete') {
365
400
  var checkStatus = table.checkStatus('currentTableId'),
366
401
  data = checkStatus.data;
367
402
  layer.alert(JSON.stringify(data));
@@ -20,6 +20,7 @@ json.data do
20
20
  json.assign_follow_ups d.last_follow_up.present? ? d.last_follow_up.assign_follow_ups.pluck(:staff_id) : []
21
21
  json.current_staff_id @current_admin.id
22
22
  json.staff_id d.staff_id
23
+ json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : ''
23
24
  end
24
25
  end
25
26
  json.code 0
@@ -1,3 +1,4 @@
1
+ <%= Gon::Base.render_data %>
1
2
  <h1 class="m-t-20 text-center"><%= @business.name %></h1>
2
3
  <div class="layui-form layuimini-form">
3
4
  <div class="layui-form-item" style="padding: 25px">
@@ -16,9 +17,9 @@
16
17
  <br>
17
18
  <div class="layui-inline">
18
19
  <label class="layui-form-label required">项目类型</label>
19
- <%if @last_follow_up&.clazz&.name == "O类" %>
20
+ <%if @last_follow_up&.clazz&.name == @o_name %>
20
21
  <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
+ <%= select_tag "clazz_id", options_for_select([[@o_name,EducodeSales::Common.find_by(name: @o_name).id]]),:disabled => true, class: 'required' %>
22
23
  </div>
23
24
  <%else %>
24
25
  <div class="layui-input-inline">
@@ -58,9 +59,9 @@
58
59
  </div>
59
60
  </div>
60
61
  <div class="layui-inline">
61
- <label class="layui-form-label">实额(万)</label>
62
+ <label class="layui-form-label">合同额(万)</label>
62
63
  <div class="layui-input-inline">
63
- <input name="actual_amount" type="number" class="layui-input" autocomplete="off"
64
+ <input name="actual_amount" type="number" class="layui-input" autocomplete="off" placeholder="本单位的签单金额"
64
65
  value="<%= @last_follow_up&.actual_amount%>">
65
66
  </div>
66
67
  </div>
@@ -72,11 +73,10 @@
72
73
  </div>
73
74
  </div>
74
75
  <div class="layui-inline">
75
- <label class="layui-form-label">分成</label>
76
+ <label class="layui-form-label">渠道分成</label>
76
77
  <div class="layui-input-inline">
77
78
  <input name="divide_rate" class="layui-input" value="<%= @last_follow_up&.divide_rate%>">
78
79
  </div>
79
- <span style="margin-top: 10px; float:left;">%</span>
80
80
  </div>
81
81
  <div class="layui-form-item">
82
82
  <label class="layui-form-label">指定跟进人</label>
@@ -85,7 +85,7 @@
85
85
  </div>
86
86
  </div>
87
87
  <div class="layui-form-item layui-form-text">
88
- <label class="layui-form-label required">商机说明</label>
88
+ <label class="layui-form-label required">最新进展</label>
89
89
  <div class="layui-input-block">
90
90
  <textarea name="description" lay-verify="required" placeholder="此处可以填写:
91
91
  1、有无预算;
@@ -162,7 +162,7 @@
162
162
  }
163
163
  })
164
164
 
165
-
165
+ sales_list.setValue(gon.sales);
166
166
  form.render();
167
167
 
168
168
  form.on('submit(add_follow_up)', function (data) {
@@ -86,9 +86,14 @@
86
86
  title: '时间',
87
87
  sort: true
88
88
  },
89
+ {
90
+ field: 'staff',
91
+ width: 100,
92
+ title: '跟进人',
93
+ },
89
94
  {
90
95
  field: 'clazz',
91
- width: 60,
96
+ width: 120,
92
97
  title: '类型',
93
98
  },
94
99
  {
@@ -120,12 +125,12 @@
120
125
  {
121
126
  field: 'actual_amount',
122
127
  width: 100,
123
- title: '实额',
128
+ title: '合同额',
124
129
  },
125
130
  {
126
131
  field: 'divide_rate',
127
- width: 80,
128
- title: '分成',
132
+ width: 100,
133
+ title: '渠道分成',
129
134
  },
130
135
  {
131
136
  field: 'money',
@@ -138,11 +143,6 @@
138
143
  title: '回款计划',
139
144
  templet: '#edit_plan'
140
145
  },
141
- {
142
- field: 'staff',
143
- width: 100,
144
- title: '跟进人',
145
- },
146
146
  {
147
147
  field: 'place',
148
148
  width: 200,
@@ -9,7 +9,7 @@ json.data do
9
9
  json.reception_at d.reception_at&.to_s(:date)
10
10
  json.total_amount d.total_amount
11
11
  json.actual_amount d.actual_amount
12
- json.divide_rate d.divide_rate ? "#{d.divide_rate}%" : ""
12
+ json.divide_rate d.divide_amount ? d.divide_amount : ""
13
13
  json.staff d.staff.user.real_name
14
14
  json.place d.place&.name
15
15
  json.money_plans_count d.money_plans_count
@@ -47,7 +47,7 @@
47
47
  </div>
48
48
  </div>
49
49
  <div class="layui-inline">
50
- <label class="layui-form-label">实额:</label>
50
+ <label class="layui-form-label">合同额:</label>
51
51
  <div class="layui-input-inline">
52
52
  <%= @follow_up.actual_amount %>万
53
53
  </div>
@@ -60,9 +60,9 @@
60
60
  </div>
61
61
  </div>
62
62
  <div class="layui-inline">
63
- <label class="layui-form-label">分成:</label>
63
+ <label class="layui-form-label">渠道分成:</label>
64
64
  <div class="layui-input-inline">
65
- <%= @follow_up.divide_rate %>%
65
+ <%= @follow_up.divide_rate %>
66
66
  </div>
67
67
  </div>
68
68
  <div class="ayui-form-item">
@@ -72,7 +72,7 @@
72
72
  </div>
73
73
  </div>
74
74
  <div class="layui-form-item layui-form-text">
75
- <label class="layui-form-label">商机说明:</label>
75
+ <label class="layui-form-label">最新进展:</label>
76
76
  <div class="layui-input-block" style="padding-right: 20px;">
77
77
  <pre><%= @follow_up.description %></pre>
78
78
  </div>
@@ -83,5 +83,17 @@
83
83
  <pre><%= @follow_up.advise %></pre>
84
84
  </div>
85
85
  </div>
86
+ <div class="layui-form-item layui-form-text">
87
+ <label class="layui-form-label">时间:</label>
88
+ <div class="layui-input-block" style="padding-right: 20px;">
89
+ <pre><%= @follow_up.created_at.to_s %></pre>
90
+ </div>
91
+ </div>
92
+ <div class="layui-form-item layui-form-text">
93
+ <label class="layui-form-label">跟进人:</label>
94
+ <div class="layui-input-block" style="padding-right: 20px;">
95
+ <pre><%= @follow_up.staff.user.real_name %></pre>
96
+ </div>
97
+ </div>
86
98
  </div>
87
99
  </form>
@@ -73,8 +73,10 @@
73
73
  layer.close(parent.new_monthly_index)
74
74
  layer.close(parent.monthPlanIndex)
75
75
  layer.close(parent.teacherindex2)
76
+ layer.close(parent.sindex)
76
77
  table.reload('monthPlanTable')
77
78
  table.reload("newMonthlyTable")
79
+ table.reload("newWeeklyTable")
78
80
  }
79
81
  })
80
82
  return false;
@@ -80,6 +80,7 @@
80
80
  else {
81
81
  parent.table.reload('businesses_table')
82
82
  }
83
+ parent.table.reload('newWeeklyTable')
83
84
  }
84
85
  })
85
86
  return false;
@@ -34,6 +34,7 @@
34
34
  }
35
35
  ,error: function(index, upload){
36
36
  layer.closeAll('loading'); //关闭loading
37
+ layer.alert('导入失败,请检查文件格式')
37
38
  }
38
39
  });
39
40
  });
@@ -262,7 +262,7 @@
262
262
  edit(id);
263
263
  break;
264
264
  case 'delete':
265
- deleteBusiness(id, elem.data['name']);
265
+ deleteBusiness(id, elem.data('name'));
266
266
  break;
267
267
  }
268
268
  }
@@ -12,9 +12,8 @@ json.data do
12
12
  json.teacher_follows_count d.teacher_follows_count
13
13
  json.activities_count d.activity_teachers_count
14
14
  json.source EducodeSales::Common.teacher_source_name[d.source_id]
15
- # a_id = EducodeSales::TeacherFollow.order(created_at: :desc).find_by(teacher_id: d.id).present? ? EducodeSales::TeacherFollow.order(created_at: :desc).find_by(teacher_id: d.id).attitude_id : 73
16
- json.attitude EducodeSales::TeacherFollow.find_by(teacher_id: d.id).present? ? EducodeSales::Common.find(EducodeSales::TeacherFollow.order(created_at: :desc).find_by(teacher_id: d.id).attitude_id).name : ''
17
- json.courses_count d.user_id ? Course.joins(:course_members).where(course_members: {user_id: d.user_id}).distinct("course_id").count : 0
15
+ json.attitude d.follow_up&.attitude&.name
16
+ json.courses_count d.user_id ? Course.joins(:course_members).where(course_members: {user_id: d.user_id}).where("is_delete = 0 and role != 4 and excellent = 0 and is_hidden = 0").where("start_date is null or start_date <= '#{Date.today}'").distinct(:course_id).count : 0
18
17
  json.actives d.actives
19
18
  json.students d.students_count
20
19
  json.regist_at d.user.present? ? d.user.created_on.to_s(:date) : ''
@@ -8,8 +8,9 @@ json.data do
8
8
  json.course_build EducodeSales::Common.find_by(id: d.course_build_id).name
9
9
  json.contact EducodeSales::Common.find_by(id: d.follow_id).name
10
10
  json.staff d.staff.user.real_name
11
- json.students_count d.students_count
12
- json.courses_count Course.joins(:course_members).where(course_members: {user_id: d.teacher&.user_id}).distinct("course_id").count
11
+ json.students_count d.teacher&.students_count
12
+ # json.courses_count Course.joins(:course_members).where(course_members: {user_id: d.teacher&.user_id}).distinct("course_id").count
13
+ json.courses_count Course.joins(:course_members).where(course_members: {user_id: d.teacher&.user_id}).where("is_delete = 0 and role != 4 and excellent = 0 and is_hidden = 0").where("start_date is null or start_date <= '#{Date.today}'").distinct(:course_id).count
13
14
  json.evaluates_count d.evaluates_count
14
15
  json.course_shixuns_count d.course_shixuns_count
15
16
  json.shixuns_count d.shixuns_count
@@ -10,13 +10,19 @@
10
10
  <%= stylesheet_link_tag "educode_sales/application", media: "all" %>
11
11
  <%= javascript_include_tag "educode_sales/application" %>
12
12
  </head>
13
- <body>
14
- <div class="layui-layout layui-layout-admin">
13
+ <body class="" id="body">
14
+ <div class="layui-layout layui-layout-admin " >
15
15
  <div class="layui-header">
16
- <div class="layui-logo layui-hide-xs layui-bg-black">
16
+ <div class="layui-logo layui-hide-xs layui-bg-black layuimini-logo">
17
17
  <%= image_tag "educode_sales/logo.png", class: 'header-logo' %>
18
18
  <span class="app-title">营销系统</span>
19
19
  </div>
20
+
21
+ <ul class="layui-nav i_class" style="left: 200px">
22
+ <li class="layui-nav-item layui-show-xs-inline-block " lay-header-event="menuLeft">
23
+ <a href="javascript:;"> <i id="leftEnumIcon" class="layui-icon layui-icon-shrink-right"></i></a>
24
+ </li>
25
+ </ul>
20
26
  <ul class="layui-nav layui-layout-right">
21
27
  <li class="layui-nav-item layui-hide layui-show-md-inline-block">
22
28
  <a href="javascript:;">
@@ -41,64 +47,64 @@
41
47
  <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
42
48
  <ul class="layui-nav layui-nav-tree" lay-filter="test">
43
49
  <li class="layui-nav-item layui-nav-itemed">
44
- <a class="" href="javascript:;"><b>销售活动</b></a>
50
+ <a class="" href="javascript:;"><b><i class="layui-icon layui-icon-template-1" style="font-size: 25px; padding-right: 20px"></i>销售活动</b></a>
45
51
  <dl class="layui-nav-child">
46
52
  <% if can? :trends, EducodeSales::SaleTrend %>
47
- <dd>
48
- <a href="/missions/sale_trends/trends" class="<%= current?('layui-this', trends_sale_trends_path) %>">市场态势</a>
49
- </dd>
53
+ <dd>
54
+ <a href="/missions/sale_trends/trends" class="<%= current?('layui-this', trends_sale_trends_path) %>"><i class="layui-icon layui-icon-chart-screen" style="font-size: 25px; padding-right: 20px"></i>市场态势</a>
55
+ </dd>
50
56
  <% end %>
51
57
  <% if can? :sales, EducodeSales::Staff %>
52
- <dd><a href="/missions/sales" class="<%= current?('layui-this', sales_path) %>">销售分工</a>
53
- </dd>
58
+ <dd><a href="/missions/sales" class="<%= current?('layui-this', sales_path) %>"><i class="layui-icon layui-icon-username" style="font-size: 25px; padding-right: 20px"></i>销售分工</a>
59
+ </dd>
54
60
  <% end %>
55
61
  <% if can? :read, EducodeSales::Business %>
56
- <dd><a href="/missions/businesses" class="<%= current?('layui-this', businesses_path) %>">商机管理</a>
57
- </dd>
62
+ <dd><a href="/missions/businesses" class="<%= current?('layui-this', businesses_path) %>"><i class="layui-icon layui-icon-component" style="font-size: 25px; padding-right: 20px"></i>商机管理</a>
63
+ </dd>
58
64
  <% end %>
59
65
  <% if can? :read, EducodeSales::Place %>
60
- <dd><a href="/missions/places" class="<%= current?('layui-this', places_path) %>">渠道管理</a></dd>
66
+ <dd><a href="/missions/places" class="<%= current?('layui-this', places_path) %>"><i class="layui-icon layui-icon-tabs" style="font-size: 25px; padding-right: 20px"></i>渠道管理</a></dd>
61
67
  <% end %>
62
68
  <% if can? :read, EducodeSales::SalePlan %>
63
- <dd><a href="/missions/plans" class="<%= current?('layui-this', plans_path) %>">销售计划</a></dd>
69
+ <dd><a href="/missions/plans" class="<%= current?('layui-this', plans_path) %>"><i class="layui-icon layui-icon-form" style="font-size: 25px; padding-right: 20px"></i>销售计划</a></dd>
64
70
  <% end %>
65
71
  </dl>
66
72
  </li>
67
73
  <li class="layui-nav-item layui-nav-itemed">
68
- <a class="" href="javascript:;"><b>运营活动</b></a>
74
+ <a class="" href="javascript:;"><b><i class="layui-icon layui-icon-app" style="font-size: 25px; padding-right: 20px"></i>运营活动</b></a>
69
75
  <dl class="layui-nav-child">
70
- <% if can? :read, EducodeSales::OperationTrend %>
71
- <dd>
72
- <a href="/missions/operations/trends" class="<%= current?('layui-this', trends_operations_path) %>">运营态势</a>
73
- </dd>
74
- <% end %>
75
- <% if can? :operations, EducodeSales::Staff %>
76
- <dd>
77
- <a href="/missions/sales/operations" class="<%= current?('layui-this', operations_sales_path) %>">运营分工</a>
78
- </dd>
76
+ <% if can? :read, EducodeSales::OperationTrend %>
77
+ <dd>
78
+ <a href="/missions/operations/trends" class="<%= current?('layui-this', trends_operations_path) %>"><i class="layui-icon layui-icon-chart" style="font-size: 25px; padding-right: 20px"></i>运营态势</a>
79
+ </dd>
80
+ <% end %>
81
+ <% if can? :operations, EducodeSales::Staff %>
82
+ <dd>
83
+ <a href="/missions/sales/operations" class="<%= current?('layui-this', operations_sales_path) %>"><i class="layui-icon layui-icon-friends" style="font-size: 25px; padding-right: 20px"></i>运营分工</a>
84
+ </dd>
79
85
  <% end %>
80
86
  <% if can? :read, EducodeSales::Teacher %>
81
- <dd><a href="/missions/teachers" class="<%= current?('layui-this', teachers_path) %>">教师运营</a></dd>
87
+ <dd><a href="/missions/teachers" class="<%= current?('layui-this', teachers_path) %>"><i class="layui-icon layui-icon-release" style="font-size: 25px; padding-right: 20px"></i>教师运营</a></dd>
82
88
  <% end %>
83
89
  <% if can? :read, EducodeSales::Activity %>
84
- <dd><a href="/missions/activities" class="<%= current?('layui-this', activities_path) %>">活动运营</a></dd>
90
+ <dd><a href="/missions/activities" class="<%= current?('layui-this', activities_path) %>"><i class="layui-icon layui-icon-engine" style="font-size: 25px; padding-right: 20px"></i>活动运营</a></dd>
85
91
  <% end %>
86
92
  <% if can? :read, EducodeSales::OperationPlan %>
87
- <dd>
88
- <a href="/missions/operation_plans" class="<%= current?('layui-this', operation_plans_path) %>">运营计划</a>
89
- </dd>
93
+ <dd>
94
+ <a href="/missions/operation_plans" class="<%= current?('layui-this', operation_plans_path) %>"><i class="layui-icon layui-icon-log" style="font-size: 25px; padding-right: 20px"></i>运营计划</a>
95
+ </dd>
90
96
  <% end %>
91
97
  </dl>
92
98
  </li>
93
99
  <% if @current_admin.is_admin %>
94
- <li class="layui-nav-item layui-nav-itemed">
95
- <a class="" href="javascript:;"><b>系统设置</b></a>
96
- <dl class="layui-nav-child">
97
- <dd><a href="/missions/roles" class="<%= current?('layui-this', roles_path) %>">角色管理</a></dd>
98
- <dd><a href="/missions/staffs" class="<%= current?('layui-this', staffs_path) %>">人员管理</a></dd>
99
- <dd><a href="/missions/commons" class="<%= current?('layui-this', commons_path) %>">字典列表</a></dd>
100
- </dl>
101
- </li>
100
+ <li class="layui-nav-item layui-nav-itemed">
101
+ <a class="" href="javascript:;"><b><i class="layui-icon layui-icon-set-sm" style="font-size: 25px; padding-right: 20px"></i>系统设置</b></a>
102
+ <dl class="layui-nav-child">
103
+ <dd><a href="/missions/roles" class="<%= current?('layui-this', roles_path) %>"><i class="layui-icon layui-icon-username" style="font-size: 25px; padding-right: 20px"></i>角色管理</a></dd>
104
+ <dd><a href="/missions/staffs" class="<%= current?('layui-this', staffs_path) %>"><i class="layui-icon layui-icon-user" style="font-size: 25px; padding-right: 20px"></i>人员管理</a></dd>
105
+ <dd><a href="/missions/commons" class="<%= current?('layui-this', commons_path) %>"><i class="layui-icon layui-icon-file" style="font-size: 25px; padding-right: 20px"></i>字典列表</a></dd>
106
+ </dl>
107
+ </li>
102
108
  <% end %>
103
109
  </ul>
104
110
  </div>
@@ -120,3 +126,71 @@
120
126
 
121
127
  </body>
122
128
  </html>
129
+ <script type="text/javascript" charset="utf-8">
130
+ //头部事件
131
+ layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
132
+ var $ = layui.jquery,
133
+ form = layui.form,
134
+ table = layui.table,
135
+ request = layui.request,
136
+ util = layui.util,
137
+ miniPage = layui.miniPage;
138
+
139
+ util.event('lay-header-event', { //util 记得 声明 var util = layui.util
140
+ //左侧菜单事件
141
+ menuLeft: function (othis) {
142
+ var body = $("#body");
143
+ var btn = $("#leftEnumIcon");
144
+ if (btn.hasClass('layui-icon-shrink-right')) {
145
+ menuHide(btn);
146
+ btn.addClass('btn-index');
147
+ } else if (btn.has('layui-icon-spread-left')) {
148
+ btn.removeClass('btn-index');
149
+ menuShow(btn);
150
+
151
+ }
152
+
153
+ $(window).resize(function () {
154
+ var width = $(document.body).width();
155
+ var btn = $("leftEnumIcon");
156
+ if (width < 1000) {
157
+ if (btn.hasClass('layui-icon-shrink-right')) {
158
+ menuShow(btn);
159
+ }
160
+ } else {
161
+ if (!btn.hasClass('btn-index')) {
162
+ if (btn.hasClass('layui-icon-spread-left')) {
163
+ menuHide(btn);
164
+
165
+ }
166
+ }
167
+
168
+
169
+ }
170
+
171
+ });
172
+
173
+ function menuShow(btn) {
174
+ btn.removeClass('layui-icon-spread-left').addClass('layui-icon-shrink-right');
175
+ body.removeClass('layuimini-mini')
176
+ $(".i_class").animate({left: '200px'});
177
+ // $(".zq-logo").animate({width: 'toggle'});
178
+ // $(".layui-body").animate({left: '200px'});
179
+ // $(".layui-footer").animate({left: '200px'});
180
+ }
181
+
182
+ function menuHide(btn) {
183
+ btn.removeClass('layui-icon-shrink-right').addClass('layui-icon-spread-left');
184
+ body.addClass('layuimini-mini');
185
+ // $(".layui-side").animate({width: '50px'}); //toggle如果原来div是隐藏的就会把元素显示,如果原来是显示则隐藏
186
+ $(".i_class").animate({left: '60px'});
187
+ // $(".layui-body").animate({left: '0px'});
188
+ // $(".layui-footer").animate({left: '0px'});
189
+ }
190
+ }
191
+ });
192
+ });
193
+ </script>
194
+ <style>
195
+
196
+ </style>
@@ -5,7 +5,7 @@
5
5
  <title><%= @title || '头歌营销系统' %></title>
6
6
  <%= csrf_meta_tags %>
7
7
  <%= csp_meta_tag %>
8
- <%= favicon_link_tag "educode_sales/favicon.ico" %>
8
+ <%= favicon_link_tag "educode_sales/logo.png" %>
9
9
  <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
10
10
  <%= stylesheet_link_tag "educode_sales/application", media: "all" %>
11
11
  <%= javascript_include_tag "educode_sales/application" %>
@@ -0,0 +1,6 @@
1
+ class AddExtrasToCommons < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :educode_sales_commons, :extras, :string
4
+ add_column :educode_sales_follow_ups, :divide_amount, :float
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.3.9'
2
+ VERSION = '0.4.3'
3
3
  end
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.3.9
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-13 00:00:00.000000000 Z
11
+ date: 2021-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -333,6 +333,7 @@ files:
333
333
  - db/migrate/20211009031109_add_tel_key_peoples.rb
334
334
  - db/migrate/20211009063423_add_source_businesses.rb
335
335
  - db/migrate/20211013060712_create_educode_sales_assign_follow_ups.rb
336
+ - db/migrate/20211018054256_add_extras_to_commons.rb
336
337
  - lib/educode_sales.rb
337
338
  - lib/educode_sales/engine.rb
338
339
  - lib/educode_sales/version.rb