educode_sales 0.6.3 → 0.6.4

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 (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/money_plans.png +0 -0
  3. data/app/controllers/educode_sales/money_plans_controller.rb +64 -0
  4. data/app/controllers/educode_sales/roles_controller.rb +4 -1
  5. data/app/controllers/educode_sales/sale_trends_controller.rb +40 -12
  6. data/app/controllers/educode_sales/staffs_controller.rb +3 -4
  7. data/app/models/educode_sales/permission.rb +2 -1
  8. data/app/models/educode_sales/role_area.rb +1 -0
  9. data/app/views/educode_sales/businesses/_follows.html.erb +15 -15
  10. data/app/views/educode_sales/businesses/index.html.erb +6 -2
  11. data/app/views/educode_sales/businesses/show_follow.html.erb +1 -0
  12. data/app/views/educode_sales/customers/edit.html.erb +687 -10
  13. data/app/views/educode_sales/customers/index.json.jbuilder +2 -1
  14. data/app/views/educode_sales/customers/new.html.erb +688 -11
  15. data/app/views/educode_sales/money_plans/index.html.erb +183 -0
  16. data/app/views/educode_sales/money_plans/index.json.jbuilder +20 -0
  17. data/app/views/educode_sales/plans/_monthPlan.html.erb +2 -1
  18. data/app/views/educode_sales/plans/_weekPlan.html.erb +2 -1
  19. data/app/views/educode_sales/roles/edit.html.erb +8 -0
  20. data/app/views/educode_sales/sale_trends/trends.html.erb +73 -13
  21. data/app/views/educode_sales/sale_trends/trends.json.jbuilder +3 -14
  22. data/app/views/educode_sales/sales/index.html.erb +2 -0
  23. data/app/views/educode_sales/sales/operations.json.jbuilder +2 -2
  24. data/app/views/layouts/educode_sales/application.html.erb +13 -2
  25. data/config/routes.rb +2 -0
  26. data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +3 -0
  27. data/lib/educode_sales/version.rb +1 -1
  28. metadata +6 -2
@@ -0,0 +1,183 @@
1
+ <div style="margin: 10px 10px 10px 10px">
2
+ <form class="layui-form layui-form-pane" lay-filter="search_teachers">
3
+ <div class="layui-form-item">
4
+ <div class="layui-inline">
5
+ <label class="layui-form-label">所属商机</label>
6
+ <div class="layui-input-inline">
7
+ <input type="text" name="business" autocomplete="off" class="layui-input">
8
+ </div>
9
+ </div>
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label">单位</label>
12
+ <div class="layui-input-inline">
13
+ <input type="text" name="school" autocomplete="off" class="layui-input">
14
+ </div>
15
+ </div>
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label">负责人</label>
18
+ <div class="layui-input-inline">
19
+ <%= select_tag "staff_id", options_for_select(@staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true } %>
20
+ </div>
21
+ </div>
22
+ <div class="layui-inline">
23
+ <label class="layui-form-label">状态</label>
24
+ <div class="layui-input-inline">
25
+ <%= select_tag "clazz", options_for_select(['已完成','未完成']), { include_blank: true } %>
26
+ </div>
27
+ </div>
28
+ <div class="layui-inline">
29
+ <label class="layui-form-label">创建时间</label>
30
+ <div class="layui-input-inline">
31
+ <input type="text" class="layui-input" id="date" name="date" placeholder=" - ">
32
+ </div>
33
+ </div>
34
+ <div class="layui-inline">
35
+ <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
36
+ </button>
37
+ <button type="submit" class="layui-btn layui-btn-primary" id="search_bt" lay-submit lay-filter="search_teachers">搜 索
38
+ </button>
39
+ </div>
40
+ </div>
41
+ </form>
42
+ </div>
43
+
44
+ <script type="text/html" id="toolbarDemo">
45
+ <div class="layui-btn-container">
46
+ <span class="table-label">回款列表</span>
47
+ </div>
48
+ </script>
49
+
50
+ <table class="layui-hide" id="place" lay-filter="place"></table>
51
+
52
+ <script type="text/html" id="currentTableBar">
53
+ </script>
54
+ <script type="text/html" id="business">
55
+ <div class="layui-text">
56
+ <a href="/missions/businesses?name={{d.business}}&school={{d.school}}">{{d.business}}</a>
57
+ </div>
58
+ </script>
59
+
60
+ <script type="text/html" id="school">
61
+ <a href="<%= base_url%>/colleges/{{d.school_id}}/statistics" class="layui-table-link" target="_blank">{{ d.school }}</a>
62
+ </script>
63
+
64
+ <script>
65
+ layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
66
+ var $ = layui.jquery,
67
+ form = layui.form,
68
+ table = layui.table,
69
+ request = layui.request,
70
+ miniPage = layui.miniPage;
71
+ laydate = layui.laydate;
72
+
73
+
74
+ laydate.render({
75
+ elem: '#date',
76
+ range: true
77
+ });
78
+
79
+ table.render({
80
+ elem: '#place',
81
+ url: '/missions/money_plans',
82
+ toolbar: '#toolbarDemo',
83
+ totalRow: true,
84
+ defaultToolbar: ['filter'],
85
+ initSort: {
86
+ field: 'created_at' //排序字段,对应 cols 设定的各字段名
87
+ ,type: 'desc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
88
+ },
89
+ cols: [
90
+ [
91
+ {
92
+ field: 'id',
93
+ width: 80,
94
+ title:'序号',type: 'numbers',
95
+ totalRowText:'本页/总计'
96
+ },
97
+ {
98
+ field: 'created_at',
99
+ width: 120,
100
+ sort: true,
101
+ title: '回款时间'
102
+ },
103
+ {
104
+ field: 'amount',
105
+ width: 200,
106
+ sort: true,
107
+ totalRow:true,
108
+ title: '回款金额',
109
+ },
110
+ {
111
+ field: 'clazz',
112
+ width: 100,
113
+ title: '状态',
114
+ },
115
+ {
116
+ field: 'business',
117
+ title: '所属商机',
118
+ templet: "#business",
119
+
120
+ },
121
+ {
122
+ field: 'school',
123
+ title: '单位',
124
+ templet: "#school",
125
+ },
126
+ {
127
+ field: 'staff',
128
+ width: 90,
129
+ title: '负责人',
130
+ },
131
+ ]
132
+ ],
133
+ limit: 20,
134
+ limits: [10,15,20,30,40,50,60,70,80,90],
135
+ page: true
136
+ });
137
+
138
+ var sort = {}, search = {};
139
+ table.on('sort(place)', function (obj) {
140
+ sort.field = obj.field;
141
+ sort.order = obj.type;
142
+ table.reload('place', {
143
+ initSort: obj,
144
+ where: {
145
+ sort: sort,
146
+ q: search
147
+ }
148
+ });
149
+ })
150
+
151
+ // 监听搜索操作
152
+ form.on('submit(search_teachers)', function (data) {
153
+ search = data.field
154
+ table.reload('place', {
155
+ page: {
156
+ curr: 1
157
+ },
158
+ where: {q: search, sort: sort}
159
+ }, 'data');
160
+ return false;
161
+ });
162
+
163
+ form.on('submit(reset_business_search)', function (data) {
164
+ var field = data.field;
165
+ form.val('search_teachers', {
166
+ area: "",
167
+ date: "",
168
+ staff_id: "",
169
+ clazz: "",
170
+ professional_title: "",
171
+ school: "",
172
+ business: ""
173
+ });
174
+ return false;
175
+ });
176
+
177
+ });
178
+ </script>
179
+ <style>
180
+ .layui-table-tool-temp{
181
+ padding-right: 0px; !important;
182
+ }
183
+ </style>
@@ -0,0 +1,20 @@
1
+ total_amount = 0
2
+ json.data do
3
+ json.array! @money_plans do |d|
4
+ json.id d.id
5
+ json.created_at d.created_at.to_s(:date)
6
+ json.amount d.amount
7
+ total_amount += d.amount
8
+ json.clazz d.clazz
9
+ json.business d.follow_up.business.name
10
+ json.school School.find(d.follow_up.business.school_id).name
11
+ json.school_id School.find(d.follow_up.business.school_id).id
12
+ json.staff d.staff.user.real_name
13
+ end
14
+ end
15
+
16
+ json.totalRow do
17
+ json.amount total_amount.round(2).to_s + '/' + @total_amount.round(2).to_s
18
+ end
19
+ json.code 0
20
+ json.count @money_plans.total_count
@@ -249,7 +249,8 @@
249
249
  });
250
250
  return false;
251
251
  } else if (obj.event === 'show_follow') {
252
- id = data.business_id
252
+ business_id = obj.data.business_id
253
+ id = data.business_id
253
254
  content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + data.business_id);
254
255
  openWH = miniPage.getOpenWidthHeight();
255
256
  index = layer.open({
@@ -265,7 +265,8 @@
265
265
  });
266
266
  return false;
267
267
  } else if (obj.event === 'show_follow') {
268
- id = data.business_id
268
+ business_id = obj.data.business_id
269
+ // business_name = data.name
269
270
  content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + data.business_id);
270
271
  openWH = miniPage.getOpenWidthHeight();
271
272
  index = layer.open({
@@ -36,6 +36,14 @@
36
36
  <%= radio_button_tag("business", "全部", @areas.include?("商机管理-全部"), {title: '全部列表', id: 3}) %>
37
37
  </div>
38
38
  </div>
39
+ <div class="layui-form-item" style="border-top: 1px solid #ddd;">
40
+ <label class="layui-form-label">回款管理</label>
41
+ <div class="layui-input-block">
42
+ <%= radio_button_tag("money_plan", "自己", @areas.include?("回款管理-自己"), {title: '本人负责列表', id: 16}) %>
43
+ <%= radio_button_tag("money_plan", "区域", @areas.include?("回款管理-区域"), {title: '本人负责区域列表', id: 17}) %>
44
+ <%= radio_button_tag("money_plan", "全部", @areas.include?("回款管理-全部"), {title: '全部列表', id: 18}) %>
45
+ </div>
46
+ </div>
39
47
  <div class="layui-form-item">
40
48
  <label class="layui-form-label">客户管理</label>
41
49
  <div class="layui-input-block">
@@ -220,7 +220,7 @@
220
220
  </div>
221
221
  </div>
222
222
  <div class="layui-inline">
223
- <button type="submit" id="search_bt" class=" follow_count_bt layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">确定
223
+ <button type="button" id="search_bt" class=" follow_count_bt layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">确定
224
224
  </button>
225
225
  </div>
226
226
  </div>
@@ -261,7 +261,7 @@
261
261
  </div>
262
262
  </div>
263
263
  <div class="layui-inline">
264
- <button type="submit" id="search_bt" class="follow_count_bt layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">确定
264
+ <button type="button" id="search_bt" class="goal_count_bt layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">确定
265
265
  </button>
266
266
  </div>
267
267
  </div>
@@ -280,6 +280,28 @@
280
280
  </ul>
281
281
  <div class="layui-tab-content" style="padding-right: 50px">
282
282
  <div class="layui-tab-item layui-show" style="padding-left: 20px">
283
+ <div style="margin: 10px 10px 10px 10px">
284
+ <form class="layui-form layui-form-pane" lay-filter="search_form">
285
+ <div class="layui-form-item">
286
+ <div class="layui-inline m-t-10">
287
+ <label class="layui-form-label">维度</label>
288
+ <div class="layui-input-inline">
289
+ <%= select_tag "business_count_type", options_for_select([['按商机总额统计','money'],['按商机数量统计','count']],params[:goal_count_range]), {'lay-filter': 'goal_count'}%>
290
+ </div>
291
+ </div>
292
+ <div class="layui-inline m-t-10">
293
+ <label class="layui-form-label">商机类型</label>
294
+ <div class="layui-input-inline">
295
+ <%= select_tag "business_type", options_for_select(EducodeSales::Common.where(clazz: 'business_type').where.not(extras: "x_class").pluck(:name, :id), params[:clazz_id]), { 'lay-filter': 'clazz_id', include_blank: true } %>
296
+ </div>
297
+ </div>
298
+ <div class="layui-inline">
299
+ <button type="button" id="search_bt" class="business_bt layui-btn layui-btn-primary" lay-submit lay-filter="business_chart">确定
300
+ </button>
301
+ </div>
302
+ </div>
303
+ </form>
304
+ </div>
283
305
  <canvas id="myChart3" width="960" height="200"></canvas>
284
306
  </div>
285
307
 
@@ -307,17 +329,6 @@
307
329
  var element = layui.element;
308
330
  laydate = layui.laydate;
309
331
 
310
- $(document).ready(function () {
311
- $(".follow_count_bt").click(function () {
312
- layer.msg("图表绘制中...", {
313
- offset:['40%','46%']
314
- })
315
- layer.load(0, {});
316
- setTimeout(function () {
317
- layer.closeAll('loading');
318
- }, 3000);
319
- });
320
- });
321
332
  if(follow_type == "day"){
322
333
  $(".year").addClass('layui-hide')
323
334
  $(".month").addClass('layui-hide')
@@ -518,5 +529,54 @@
518
529
  data: <%=raw @business_data.to_json %>,
519
530
  options: opt
520
531
  });
532
+
533
+ $(document).ready(function () {
534
+ $(".follow_count_bt").click(function () {
535
+ layer.load(0, {});
536
+ $.get('/missions/sale_trends/trends.json?follow_count_range=' + $("#follow_count_range").val() + '&date_month=' + $("#date_month").val() + '&date_week=' + $("#date_week").val() + '&date_year=' + $("#date_year").val() + '&date=' + $("#date").val()).done(function(res) {
537
+ layer.closeAll('loading');
538
+ var data1 = res.data1;
539
+ var ctx = document.getElementById('myChart');
540
+ var myChart = new Chart(ctx, {
541
+ type: 'line',
542
+ data: data1,
543
+ options: {
544
+ elements: {
545
+ line: {
546
+ tension: 0
547
+ }
548
+ }
549
+ }
550
+ });
551
+ });
552
+ });
553
+ $(".goal_count_bt").click(function () {
554
+ layer.load(0, {});
555
+ $.get('/missions/sale_trends/trends.json?count_type=' + $("#count_type").val() + '&goal_count_range=' + $("#goal_count_range").val() + '&goal_date_month=' + $("#goal_date_month").val() + '&goal_date_year=' + $("#goal_date_year").val()).done(function(res) {
556
+ layer.closeAll('loading');
557
+ var data2 = res.data2;
558
+ var ctx = document.getElementById('myChart2');
559
+ var myChart2 = new Chart(ctx, {
560
+ type: 'bar',
561
+ data: data2,
562
+ options: opt
563
+ });
564
+ });
565
+ });
566
+ $(".business_bt").click(function () {
567
+ layer.load(0, {});
568
+ $.get('/missions/sale_trends/trends.json?business_count_type=' + $("#business_count_type").val() + '&business_type=' + $("#business_type").val()).done(function(res) {
569
+ layer.closeAll('loading');
570
+ var data3 = res.data3;
571
+ var ctx = document.getElementById('myChart3');
572
+ var myChart3 = new Chart(ctx, {
573
+ type: 'bar',
574
+ data: data3,
575
+ options: opt
576
+ });
577
+ });
578
+ });
579
+ });
580
+
521
581
  })
522
582
  </script>
@@ -1,14 +1,3 @@
1
- my_array = [1,2,3,4,5]
2
- json.data do
3
- json.labels my_array
4
- json.datasets do
5
- json.array! [1,2] do |d|
6
- json.label '人名'
7
- json.backgroundColor "#fff"
8
- json.borderColor "#36A2EB"
9
- json.pointBackgroundColor "#36A2EB"
10
- json.pointBorderColor "#fff"
11
- json.data my_array
12
- end
13
- end
14
- end
1
+ json.data1 @follow_count_data
2
+ json.data2 @goal_count_data
3
+ json.data3 @business_data
@@ -77,10 +77,12 @@
77
77
  field: 'id',
78
78
  title:'序号',type: 'numbers',
79
79
  totalRowText:'合计',
80
+ fixed: 'left',
80
81
  width: 80
81
82
  }, {
82
83
  field: 'name',
83
84
  title: '姓名',
85
+ fixed: 'left',
84
86
  width: 100
85
87
  }, {
86
88
  field: 'area',
@@ -17,9 +17,9 @@ json.data do
17
17
  else
18
18
  json.area ''
19
19
  end
20
- departments = EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.staff_id = #{d.id}").select("COUNT(educode_sales_follow_ups.staff_id) AS count")[0]&.send('count') + EducodeSales::Teacher.joins(:follow_up).where("educode_sales_teacher_follows.staff_id = #{d.id}").select("COUNT(educode_sales_teacher_follows.staff_id) AS count")[0]&.send('count') || 0
20
+ departments = (EducodeSales::Business.joins(:follow_ups, [department: :school]).where("educode_sales_follow_ups.staff_id = #{d.id}").select("departments.id, departments.name, schools.name AS school, educode_sales_follow_ups.updated_at") + EducodeSales::Teacher.joins(:follow_up, [department: :school]).where("educode_sales_teacher_follows.staff_id = #{d.id}").select("departments.id, departments.name, schools.name AS school, educode_sales_teacher_follows.updated_at")).uniq{|s| s.id}.size
21
21
  json.departments departments
22
- schools = EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{d.id}").select("COUNT(distinct(departments.school_id)) AS count")[0]['count'] + EducodeSales::Teacher.joins(:follow_up, :department).where("educode_sales_teacher_follows.staff_id = #{d.id}").select("COUNT(distinct(departments.school_id)) AS count")[0]['count']
22
+ schools = EducodeSales::Business.joins(:follow_ups, :department).where("educode_sales_follow_ups.staff_id = #{d.id}").select("COUNT(distinct(departments.school_id)) AS count")[0]['count'] + EducodeSales::Teacher.joins(:follow_up, :department).where("educode_sales_teacher_follows.staff_id = #{d.id}").select("COUNT(distinct(departments.school_id)) AS count")[0]['count']
23
23
  json.schools schools
24
24
  departments_count += departments
25
25
  schools_count += schools
@@ -9,12 +9,15 @@
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" %>
12
+ <script src="https://cdn.jsdelivr.net/npm/cxselect@1.4.0/js/jquery.cxselect.js"></script>
13
+ <script src="https://cdn.jsdelivr.net/npm/cxselect@1.4.0/js/jquery.cxselect.min.js"></script>
14
+ <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.js"></script>
12
15
  </head>
13
16
  <body class="" id="body">
14
17
  <div class="layui-layout layui-layout-admin " >
15
18
  <div class="layui-header">
16
19
  <a href="/missions">
17
- <div class="layui-hide-xs layui-bg-black layuimini-logo layui-logo">
20
+ <div class="layui-bg-black layuimini-logo layui-logo" id="head_a">
18
21
  <%= image_tag "educode_sales/logo.png", class: 'header-logo' %>
19
22
  <span class="app-title">营销系统</span>
20
23
  </div>
@@ -45,7 +48,7 @@
45
48
  </ul>
46
49
  </div>
47
50
 
48
- <div class="layui-side layui-bg-black">
51
+ <div class="layui-side layui-bg-black" id="head_b">
49
52
  <div class="layui-side-scroll ">
50
53
  <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
51
54
  <ul class="layui-nav layui-nav-tree ul"
@@ -66,6 +69,10 @@
66
69
  <dd><a href="/missions/businesses" class="<%= current?('layui-this', businesses_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/4.商机管理.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>商机管理</a>
67
70
  </dd>
68
71
  <% end %>
72
+ <% if can? :read, EducodeSales::MoneyPlan %>
73
+ <dd><a href="/missions/money_plans" class="<%= current?('layui-this', money_plans_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/money_plans.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>回款管理</a>
74
+ </dd>
75
+ <% end %>
69
76
  <% if can? :read, EducodeSales::Customer %>
70
77
  <dd><a href="/missions/customers" class="<%= current?('layui-this', customers_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/客户管理.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>客户管理</a>
71
78
  </dd>
@@ -205,6 +212,8 @@
205
212
  $(".i_class").animate({left: '200px'},"fast");
206
213
  $(".layui-nav-item").addClass('layui-nav-itemed')
207
214
  $("#logout").removeClass('layui-nav-itemed')
215
+ $("#head_b").removeClass('layui-hide-xs')
216
+ $("#head_a").removeClass('layui-hide-xs')
208
217
  }
209
218
 
210
219
  function menuHide(btn) {
@@ -212,6 +221,8 @@
212
221
  btn.removeClass('layui-icon-shrink-right').addClass('layui-icon-spread-left');
213
222
  body.addClass('layuimini-mini');
214
223
  $(".i_class").animate({left: '60px'});
224
+ $("#head_b").addClass('layui-hide-xs')
225
+ $("#head_a").addClass('layui-hide-xs')
215
226
  }
216
227
  }
217
228
  });
data/config/routes.rb CHANGED
@@ -20,6 +20,8 @@ EducodeSales::Engine.routes.draw do
20
20
  end
21
21
  resources :customer_follows do
22
22
  end
23
+ resources :money_plans do
24
+ end
23
25
 
24
26
  resources :customers do
25
27
  collection do
@@ -8,6 +8,9 @@ class CreateEducodeSalesRolePermissions < ActiveRecord::Migration[5.2]
8
8
  end
9
9
  if EducodeSales::Permission.last.nil?
10
10
 
11
+ #回款管理权限
12
+ EducodeSales::Permission.create(name: '查看回款列表', subject: 'MoneyPlan', action: 'read', clazz: 'money_plan', position: '15')
13
+
11
14
  #客户管理权限
12
15
  EducodeSales::Permission.create(name: '查看客户', subject: 'Customer', action: 'read', clazz: 'customer')
13
16
  EducodeSales::Permission.create(name: '添加客户', subject: 'Customer', action: 'create', clazz: 'customer')
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.6.3'
2
+ VERSION = '0.6.4'
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.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-24 00:00:00.000000000 Z
11
+ date: 2022-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -109,6 +109,7 @@ files:
109
109
  - app/assets/images/educode_sales/loading-2.gif
110
110
  - app/assets/images/educode_sales/loginbg.png
111
111
  - app/assets/images/educode_sales/logo.png
112
+ - app/assets/images/educode_sales/money_plans.png
112
113
  - app/assets/images/educode_sales/回收站.png
113
114
  - app/assets/images/educode_sales/客户管理.png
114
115
  - app/assets/javascripts/educode_sales/application.js
@@ -145,6 +146,7 @@ files:
145
146
  - app/controllers/educode_sales/home_controller.rb
146
147
  - app/controllers/educode_sales/import_teachers_controller.rb
147
148
  - app/controllers/educode_sales/key_person_controller.rb
149
+ - app/controllers/educode_sales/money_plans_controller.rb
148
150
  - app/controllers/educode_sales/operation_plans_controller.rb
149
151
  - app/controllers/educode_sales/operation_reports_controller.rb
150
152
  - app/controllers/educode_sales/operations_controller.rb
@@ -253,6 +255,8 @@ files:
253
255
  - app/views/educode_sales/home/search_teacher.json.jbuilder
254
256
  - app/views/educode_sales/home/search_users.json.jbuilder
255
257
  - app/views/educode_sales/home/statistics.html.erb
258
+ - app/views/educode_sales/money_plans/index.html.erb
259
+ - app/views/educode_sales/money_plans/index.json.jbuilder
256
260
  - app/views/educode_sales/operation_plans/_monthPlan.html.erb
257
261
  - app/views/educode_sales/operation_plans/_monthly.html.erb
258
262
  - app/views/educode_sales/operation_plans/_weekPlan.html.erb