educode_sales 0.4.2 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41790fb0313e3f22aff7bbd0046de7bd203e8523b72cfa22712cbf12f9cbb61d
4
- data.tar.gz: 1bc23b24c70fbaccbd3993f022042564d49dc81f87ffcbb9761b57ef81d37593
3
+ metadata.gz: fb60117f75870a9280a833425b4a29bac7172e70da78b061fa41ea92abc7c985
4
+ data.tar.gz: 203aaf0c96f4e246ab734cd3dc4844542563404f6939bc2613ae286fe37d8be7
5
5
  SHA512:
6
- metadata.gz: 23fe3b32747285c645c7d2a6e0cf42684a3fc175bdc05df9b69353801a87d145bcf55a5eed40af789737ca1b3697c2b6a0cd36ea64f41a5eb4d5cfeac6eb6ae0
7
- data.tar.gz: da31bffc608e4e52526df99b2a9add2e56c3e3d4c943dad31a050656f80db0ad4da934dbd6a653e3511687ab97382d2beedcdab145dbafc7d34c8f96f7cd2d7c
6
+ metadata.gz: 688e3848050cd08d8598e8434e0039db4aa6fb0972f3bd558ad026b68462080fe898802082f94dfcf67b7e3a765631ecc39befad5382028c30c0b4259fb4e045
7
+ data.tar.gz: 5ed1048e97b6cf03f127040239eb7a7c8011b72edf8a94deb42d65a829a4e7ed15b98ecb94bdeb662dc6dc66efe3fff6e22cfeef28d819082a8f8ce9879cfeee
@@ -80,7 +80,6 @@ module EducodeSales
80
80
  @businesses = @businesses.where("educode_sales_businesses.created_at > ? AND educode_sales_businesses.created_at < ?", date[0], date[1])
81
81
  end
82
82
 
83
-
84
83
  if params[:sort].present? && params[:sort][:field]
85
84
  @businesses = @businesses.order("#{params[:sort][:field]} #{params[:sort][:order]}")
86
85
  else
@@ -89,6 +88,18 @@ module EducodeSales
89
88
 
90
89
  @business_count = @businesses.count
91
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
+
92
103
  @businesses = @businesses.select("
93
104
  educode_sales_businesses.*,
94
105
  last_follow.invitation_at,
@@ -177,6 +188,7 @@ module EducodeSales
177
188
 
178
189
  def new_follow_record
179
190
  load_business
191
+ @o_name = EducodeSales::Common.find_by(extras: EducodeSales::Common::OTYPE)&.name
180
192
  @clazz = Common.where(clazz: 'business_type').order("position").pluck(:name, :id)
181
193
  @stages = Common.where(clazz: 'business_step').order("position").pluck(:name, :id)
182
194
  @places = Place.order("created_at desc").pluck(:name, :id)
@@ -201,6 +213,7 @@ module EducodeSales
201
213
  end
202
214
 
203
215
  def edit_follow_record
216
+ @o_name = EducodeSales::Common.find_by(extras: EducodeSales::Common::OTYPE)&.name
204
217
  @follow_up = FollowUp.find(params[:follow_up_id])
205
218
  @clazz = Common.where(clazz: 'business_type').order("position").pluck(:name, :id)
206
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
@@ -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
@@ -9,8 +9,8 @@ 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)
@@ -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])
@@ -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
 
@@ -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: '操作',
@@ -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
@@ -17,9 +17,9 @@
17
17
  <br>
18
18
  <div class="layui-inline">
19
19
  <label class="layui-form-label required">项目类型</label>
20
- <%if @last_follow_up&.clazz&.name == "O类" %>
20
+ <%if @last_follow_up&.clazz&.name == @o_name %>
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">
@@ -59,9 +59,9 @@
59
59
  </div>
60
60
  </div>
61
61
  <div class="layui-inline">
62
- <label class="layui-form-label">实额(万)</label>
62
+ <label class="layui-form-label">合同额(万)</label>
63
63
  <div class="layui-input-inline">
64
- <input name="actual_amount" type="number" class="layui-input" autocomplete="off"
64
+ <input name="actual_amount" type="number" class="layui-input" autocomplete="off" placeholder="本单位的签单金额"
65
65
  value="<%= @last_follow_up&.actual_amount%>">
66
66
  </div>
67
67
  </div>
@@ -73,11 +73,10 @@
73
73
  </div>
74
74
  </div>
75
75
  <div class="layui-inline">
76
- <label class="layui-form-label">分成</label>
76
+ <label class="layui-form-label">渠道分成</label>
77
77
  <div class="layui-input-inline">
78
78
  <input name="divide_rate" class="layui-input" value="<%= @last_follow_up&.divide_rate%>">
79
79
  </div>
80
- <span style="margin-top: 10px; float:left;">%</span>
81
80
  </div>
82
81
  <div class="layui-form-item">
83
82
  <label class="layui-form-label">指定跟进人</label>
@@ -86,7 +85,7 @@
86
85
  </div>
87
86
  </div>
88
87
  <div class="layui-form-item layui-form-text">
89
- <label class="layui-form-label required">商机说明</label>
88
+ <label class="layui-form-label required">最新进展</label>
90
89
  <div class="layui-input-block">
91
90
  <textarea name="description" lay-verify="required" placeholder="此处可以填写:
92
91
  1、有无预算;
@@ -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>
@@ -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>
@@ -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.4.2'
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.4.2
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-16 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