educode_sales 1.10.49 → 1.10.58

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/educode_sales/modules/easyeditor/easyeditor.css +1 -1
  3. data/app/controllers/educode_sales/application_controller.rb +10 -0
  4. data/app/controllers/educode_sales/business_courses_controller.rb +58 -33
  5. data/app/controllers/educode_sales/businesses_controller.rb +43 -7
  6. data/app/controllers/educode_sales/contracts_controller.rb +6 -0
  7. data/app/controllers/educode_sales/money_plan_records_controller.rb +6 -2
  8. data/app/controllers/educode_sales/money_plans_controller.rb +3 -0
  9. data/app/controllers/educode_sales/sale_trends_controller.rb +1 -1
  10. data/app/controllers/educode_sales/shixun_dectects_controller.rb +77 -16
  11. data/app/controllers/educode_sales/shixuns_controller.rb +65 -4
  12. data/app/controllers/educode_sales/subject_trends_controller.rb +99 -892
  13. data/app/controllers/educode_sales/subjects_controller.rb +29 -18
  14. data/app/helpers/educode_sales/application_helper.rb +3 -1
  15. data/app/helpers/educode_sales/business_courses_helper.rb +29 -6
  16. data/app/helpers/educode_sales/sale_trends_helper.rb +52 -52
  17. data/app/helpers/educode_sales/subject_helper.rb +5 -1
  18. data/app/models/educode_sales/business.rb +5 -5
  19. data/app/models/educode_sales/business_deliver_subject.rb +3 -2
  20. data/app/models/educode_sales/business_subject.rb +9 -3
  21. data/app/models/educode_sales/business_subject_shixun.rb +37 -8
  22. data/app/models/educode_sales/business_subject_staff.rb +1 -0
  23. data/app/views/educode_sales/business_courses/edit.html.erb +30 -4
  24. data/app/views/educode_sales/business_courses/index.html.erb +34 -12
  25. data/app/views/educode_sales/business_courses/index.json.jbuilder +2 -2
  26. data/app/views/educode_sales/business_courses/list_shixuns.html.erb +132 -64
  27. data/app/views/educode_sales/business_courses/list_shixuns.json.jbuilder +12 -6
  28. data/app/views/educode_sales/business_courses/list_subjects.html.erb +29 -34
  29. data/app/views/educode_sales/business_courses/list_subjects.json.jbuilder +7 -2
  30. data/app/views/educode_sales/business_courses/new.html.erb +45 -20
  31. data/app/views/educode_sales/businesses/index.html.erb +11 -9
  32. data/app/views/educode_sales/contracts/_list.html.erb +16 -1
  33. data/app/views/educode_sales/contracts/index.html.erb +5 -2
  34. data/app/views/educode_sales/contracts/list.js.erb +4 -1
  35. data/app/views/educode_sales/money_plan_records/_index.html.erb +21 -5
  36. data/app/views/educode_sales/money_plan_records/index.js.erb +4 -1
  37. data/app/views/educode_sales/money_plans/list.html.erb +6 -2
  38. data/app/views/educode_sales/sale_trends/_return_money_forecast.html.erb +1 -1
  39. data/app/views/educode_sales/sale_trends/_user_stat.html.erb +1 -1
  40. data/app/views/educode_sales/sale_trends/_visit_analysis.html.erb +1 -1
  41. data/app/views/educode_sales/sale_trends/return_money_forecast.js.erb +1 -1
  42. data/app/views/educode_sales/sale_trends/trends.html.erb +6 -6
  43. data/app/views/educode_sales/sale_trends/user_stat.js.erb +1 -1
  44. data/app/views/educode_sales/sale_trends/visit_analysis.js.erb +1 -1
  45. data/app/views/educode_sales/shixun_dectects/index.html.erb +97 -47
  46. data/app/views/educode_sales/shixun_dectects/index.json.jbuilder +4 -3
  47. data/app/views/educode_sales/shixun_dectects/markdown.html.erb +1 -1
  48. data/app/views/educode_sales/shixuns/edit.html.erb +35 -13
  49. data/app/views/educode_sales/shixuns/index.html.erb +348 -138
  50. data/app/views/educode_sales/shixuns/index.json.jbuilder +9 -5
  51. data/app/views/educode_sales/shixuns/new.html.erb +22 -12
  52. data/app/views/educode_sales/subject_trends/trends.html.erb +177 -575
  53. data/app/views/educode_sales/subjects/edit.html.erb +4 -4
  54. data/app/views/educode_sales/subjects/index.html.erb +50 -12
  55. data/app/views/educode_sales/subjects/index.json.jbuilder +3 -3
  56. data/app/views/educode_sales/subjects/list_shixuns.html.erb +143 -17
  57. data/app/views/educode_sales/subjects/list_shixuns.json.jbuilder +9 -4
  58. data/app/views/educode_sales/subjects/new.html.erb +4 -4
  59. data/app/views/layouts/educode_sales/application.html.erb +1 -1
  60. data/lib/educode_sales/version.rb +1 -1
  61. metadata +6 -7
  62. data/app/assets/images/educode_sales/indexlogo.png +0 -0
@@ -7,25 +7,25 @@
7
7
  <div id="businesses_id" style="width: 50%;"></div>
8
8
  </div>
9
9
  </div>
10
+ <!-- <div class="layui-form-item">-->
11
+ <!-- <label class="layui-form-label" >交付单位:<span style="color: red"> *</span></label>-->
12
+ <!-- <div class="layui-input-block">-->
13
+ <!-- <div id="school_id" style="width: 50%;"></div>-->
14
+ <!-- </div>-->
15
+ <!-- </div>-->
10
16
  <div class="layui-form-item">
11
- <label class="layui-form-label" style="width: 80px">交付单位:<span style="color: red"> *</span></label>
17
+ <label class="layui-form-label" style="width: 102px">实践课程名称:<span style="color: red"> *</span></label>
12
18
  <div class="layui-input-block">
13
- <div id="school_id" style="width: 50%;"></div>
14
- </div>
15
- </div>
16
- <div class="layui-form-item">
17
- <label class="layui-form-label" style="width: 90px">实践课程名称:</label>
18
- <div class="layui-input-block">
19
- <div id="subject_ids" style="width: 50%"></div>
19
+ <div id="subject_ids" style="width: 49%;margin-left: 12px"></div>
20
20
  </div>
21
21
  </div>
22
22
 
23
- <div class="layui-form-item">
24
- <label class="layui-form-label">交付时间:</label>
25
- <div class="layui-input-block">
26
- <input type="text" name="deliver_date" style="width: 50%;" class="layui-input" id="ID-laydate-demo" placeholder="- -">
27
- </div>
28
- </div>
23
+ <!-- <div class="layui-form-item">-->
24
+ <!-- <label class="layui-form-label">交付时间:</label>-->
25
+ <!-- <div class="layui-input-block">-->
26
+ <!-- <input type="text" name="deliver_date" style="width: 50%;" class="layui-input" id="ID-laydate-demo" placeholder="- -">-->
27
+ <!-- </div>-->
28
+ <!-- </div>-->
29
29
 
30
30
  <div class="layui-form-item">
31
31
  <label class="layui-form-label">交付状态:<span style="color: red"> *</span></label>
@@ -39,7 +39,7 @@
39
39
  </div>
40
40
  </div>
41
41
  <div class="layui-form-item">
42
- <label class="layui-form-label">课程经理:</label>
42
+ <label class="layui-form-label">课程经理:<span style="color: red"> *</span></label>
43
43
  <div class="layui-input-block">
44
44
  <div id="manage_id" style="width: 50%"></div>
45
45
  </div>
@@ -64,9 +64,9 @@
64
64
  // 解决form表单中select不渲染的问题
65
65
  form.render();
66
66
  form.render('select', 'test')
67
- laydate.render({
68
- elem: '#ID-laydate-demo'
69
- });
67
+ // laydate.render({
68
+ // elem: '#ID-laydate-demo'
69
+ // });
70
70
 
71
71
  // 交付单位
72
72
  var school_id = xmSelect.render({
@@ -96,9 +96,9 @@
96
96
  disabled: true,
97
97
  selected: true
98
98
  }]
99
- school_id.setValue(school)
99
+ // school_id.setValue(school)
100
100
  }else{
101
- school_id.setValue([])
101
+ // school_id.setValue([])
102
102
  }
103
103
 
104
104
  },
@@ -180,10 +180,33 @@
180
180
  multiple: true
181
181
  })
182
182
 
183
+ function isNull(str){
184
+ return str === "" || str === null
185
+ }
186
+
183
187
  form.on('submit(saveBtn)', function (data) {
188
+
184
189
  console.log(form.val())
185
190
  let new_data = form.val();
186
191
 
192
+ if(isNull(new_data.business_id)){
193
+ layer.msg('请选商机');
194
+ return false
195
+ }
196
+ if(isNull(new_data.subject_ids)){
197
+ layer.msg('请选实践课程');
198
+ return false
199
+ }
200
+ if(isNull(new_data.manage_id)){
201
+ layer.msg('请选课堂经理');
202
+ return false
203
+ }
204
+ if(isNull(new_data.state)){
205
+ layer.msg('请选状态');
206
+ return false
207
+ }
208
+
209
+
187
210
  $.ajax('/missions/business_courses/', {
188
211
  method: 'POST',
189
212
  data: {
@@ -208,5 +231,7 @@
208
231
  })
209
232
  return false;
210
233
  });
234
+
235
+
211
236
  });
212
237
  </script>
@@ -800,15 +800,13 @@
800
800
  dropdown.render({
801
801
  elem: '.export_more-btn',
802
802
  data: export_dropmenu,
803
- click: function(data, othis){
804
- var elem = $(this.elem);
805
- id = elem.data('id');
803
+ click: function(data){
806
804
  switch (data.event) {
807
805
  case 'export_csv':
808
- export_bussiness('csv')
806
+ export_bussiness('csv');
809
807
  break;
810
808
  case 'export_excel':
811
- export_bussiness('xls')
809
+ export_bussiness('xls');
812
810
  break;
813
811
  case 'export_records':
814
812
  export_records();
@@ -818,17 +816,17 @@
818
816
 
819
817
  }
820
818
  });
821
- }
819
+ };
822
820
  function export_bussiness(type) {
823
821
  var data = form.val("search_form");
824
822
  var business_type = [];
825
823
  business_type_list.getValue().forEach(function(d) {
826
824
  business_type.push(d.value);
827
- })
825
+ });
828
826
  var business_step = [];
829
827
  business_step_list.getValue().forEach(function(d) {
830
828
  business_step.push(d.value);
831
- })
829
+ });
832
830
  data.place_id = index_place_list.getValue('valueStr');
833
831
  data.business_type = business_type.toString();
834
832
  data.business_step = business_step.toString();
@@ -855,8 +853,12 @@
855
853
  year: data.year,
856
854
  mine: search['clazz'] == 'me' ? true : '',
857
855
  is_follow: search['clazz'] == 'followes' ? true : '',
856
+ special: search['clazz'] == 'special' ? true : '',
857
+ is_area: search['clazz'] == 'area' ? true : '',
858
+ delete_list: search['clazz'] == 'delete_list' ? true : '',
859
+ plan_year: search['clazz'] == 'plan_year' ? true : ''
858
860
  }, function (res) {
859
- data = res.data
861
+ data = res.data;
860
862
  table.exportFile(business_table.config.id,data, type);
861
863
  layer.closeAll('loading');
862
864
  request.get('missions/businesses/add_export_records?type=' + type, {}, function (res) {
@@ -486,7 +486,7 @@
486
486
  });
487
487
  var contract_table = table.render({
488
488
  elem: '#contact_table',
489
- url: '/missions/contracts',
489
+ // url: '/missions/contracts',
490
490
  autoSort: false,
491
491
  where: {q: data},
492
492
  defaultToolbar: ['filter'],
@@ -500,6 +500,21 @@
500
500
  skin: 'line',
501
501
  });
502
502
 
503
+ if (gon.bidded_date) {
504
+ table.reload('contact_table', {
505
+ url: '/missions/contracts',
506
+ where: {
507
+ q: {
508
+ bidded_date: gon.bidded_date,
509
+ }
510
+ }
511
+ });
512
+ } else {
513
+ table.reload('contact_table', {
514
+ url: '/missions/contracts'
515
+ });
516
+ }
517
+
503
518
 
504
519
  var sort = {}, search = data;
505
520
 
@@ -2,7 +2,7 @@
2
2
  <div class="layui-tab" lay-filter="contract_tab">
3
3
  <ul class="layui-tab-title">
4
4
  <li class="layui-this follows_li">跟进动态</li>
5
- <li class="contracts_list_li">合同列表</li>
5
+ <li class="contracts_list_li" lay-id="contract">合同列表</li>
6
6
  <% if can? :read_sales_detail, EducodeSales::Business %>
7
7
  <li class="sales_list_li">销售明细</li>
8
8
  <% end %>
@@ -29,9 +29,9 @@
29
29
  request = layui.request,
30
30
  dropdown = layui.dropdown,
31
31
  miniPage = layui.miniPage,
32
- element = layui.element,
33
32
  laydate = layui.laydate;
34
33
  var laydate = layui.laydate;
34
+ element = layui.element;
35
35
 
36
36
 
37
37
 
@@ -44,6 +44,9 @@
44
44
  }
45
45
  });
46
46
 
47
+ <% if params[:date_at].present? %>
48
+ loadPage("/missions/contracts/list?date_at=<%= params[:date_at] %>");
49
+ <% end %>
47
50
 
48
51
  function loadPage(url) {
49
52
  var layer_index = layer.load(0, {shade: [0.1, '#fff']});
@@ -1 +1,4 @@
1
- $("#contract_list_wraper").html("<%= j render 'list' %>");
1
+ $("#contract_list_wraper").html("<%= j render 'list' %>");
2
+ <% if params[:date_at].present? %>
3
+ element.tabChange('contract_tab', 'contract');
4
+ <% end %>
@@ -17,7 +17,7 @@
17
17
  <div class="layui-inline">
18
18
  <label class="layui-form-label">回款日期</label>
19
19
  <div class="layui-input-inline">
20
- <input type="text" name="date_at" class="layui-input" id="date">
20
+ <input type="text" name="date_at" class="layui-input" id="return_date">
21
21
  </div>
22
22
  </div>
23
23
  <div class="layui-inline">
@@ -35,7 +35,7 @@
35
35
  <div class="layui-inline">
36
36
  <label class="layui-form-label required">匹配状态</label>
37
37
  <div class="layui-input-inline">
38
- <%= select_tag "state", options_for_select(['已认领', '待认领', '无对应合同', '无对应应收款']), { 'lay-filter': 'state', include_blank: true, "lay-search": "" } %>
38
+ <%= select_tag "state", options_for_select(['已认领', '待认领', '无对应合同', '无对应应收款'], params[:date_at].present? ? "已认领" : ""), { 'lay-filter': 'state', include_blank: true, "lay-search": "" } %>
39
39
  </div>
40
40
  </div>
41
41
  <div class="layui-inline show_item">
@@ -92,13 +92,14 @@
92
92
  laydate = layui.laydate;
93
93
  table = layui.table;
94
94
  laydate.render({
95
- elem: '#date',
96
- range: true
95
+ elem: '#return_date',
96
+ range: true,
97
+ value: gon.date
97
98
  });
98
99
  form.render();
99
100
  var money_plan_record_table = table.render({
100
101
  elem: '#money_plan_record_table',
101
- url: '/missions/money_plan_records',
102
+ // url: '/missions/money_plan_records',
102
103
  title: '回款记录列表',
103
104
  toolbar: '#toolbar_money_plan_record',
104
105
  defaultToolbar: ['filter'],
@@ -182,6 +183,21 @@
182
183
  filterable: true,
183
184
  radio: true,
184
185
  });
186
+ if (gon.date) {
187
+ table.reload('money_plan_record_table', {
188
+ url: '/missions/money_plan_records',
189
+ where: {
190
+ q: {
191
+ date_at: gon.date,
192
+ state: '已认领'
193
+ }
194
+ }
195
+ });
196
+ } else {
197
+ table.reload('money_plan_record_table', {
198
+ url: '/missions/money_plan_records'
199
+ });
200
+ }
185
201
 
186
202
  var sort = {},
187
203
  search = {};
@@ -1 +1,4 @@
1
- $("#monley_plan_record_wraper").html("<%= j render 'index' %>");
1
+ $("#monley_plan_record_wraper").html("<%= j render 'index' %>");
2
+ <% if params[:date_at].present? %>
3
+ element.tabChange('money_plan_tab', 'money_record');
4
+ <% end %>
@@ -3,7 +3,7 @@
3
3
  <ul class="layui-tab-title">
4
4
  <li class="layui-this">回款计划</li>
5
5
  <% if can? :record, EducodeSales::MoneyPlan %>
6
- <li class="">回款记录</li>
6
+ <li class="" lay-id="money_record">回款记录</li>
7
7
  <% end %>
8
8
  <li class="">开票记录</li>
9
9
  </ul>
@@ -29,9 +29,10 @@
29
29
  request = layui.request,
30
30
  dropdown = layui.dropdown,
31
31
  miniPage = layui.miniPage,
32
- element = layui.element,
32
+
33
33
  laydate = layui.laydate;
34
34
  var laydate = layui.laydate;
35
+ element = layui.element;
35
36
 
36
37
 
37
38
 
@@ -44,6 +45,9 @@
44
45
  loadPage('/missions/invoices/apply_records')
45
46
  }
46
47
  });
48
+ <% if params[:date_at].present? %>
49
+ loadPage("/missions/money_plan_records?date_at=<%= params[:date_at] %>");
50
+ <% end %>
47
51
  <% else %>
48
52
  element.on('tab(money_plan_tab)', function(data) {
49
53
  if (data.index == 1 && $("#invoice_apply").length == 0) {
@@ -1,4 +1,4 @@
1
- <div id="tab_9">
1
+ <div id="tab_7">
2
2
  <div class="" style="padding-right: 50px">
3
3
  <div style="margin: 10px 10px 10px 10px">
4
4
  <form class="layui-form layui-form-pane" lay-filter="search_form">
@@ -1,5 +1,5 @@
1
1
  <%= Gon::Base.render_data %>
2
- <div id="tab_7" lay-filter="test7">
2
+ <div id="tab_8" lay-filter="test7">
3
3
  <div class="" style="padding-right: 50px">
4
4
  <table class="layui-hide" id="table_7_year"></table>
5
5
  </div>
@@ -1,4 +1,4 @@
1
- <div id="tab_8">
1
+ <div id="tab_9">
2
2
  <div class="" style="padding-right: 50px">
3
3
  <div style="margin: 10px 10px 10px 10px">
4
4
  <form class="layui-form layui-form-pane" lay-filter="search_visit_form">
@@ -1 +1 @@
1
- $("#page_9").html("<%= j render 'return_money_forecast' %>");
1
+ $("#page_7").html("<%= j render 'return_money_forecast' %>");
@@ -6,9 +6,9 @@
6
6
  <li class="">商机区域分布</li>
7
7
  <li class="">销售人员跟进分析</li>
8
8
  <li class="">中标预测图</li>
9
+ <li class="">回款预测图</li>
9
10
  <li class="">用户分析</li>
10
11
  <li class="">拜访分析</li>
11
- <li class="">回款预测图</li>
12
12
  </ul>
13
13
  <div class="layui-tab-content">
14
14
  <div class="layui-tab-item layui-show">
@@ -141,7 +141,7 @@
141
141
  <div class="panel layui-bg-number">
142
142
  <div class="panel-body">
143
143
  <div class="panel-title">
144
- <h5>已回款<a href="/missions/businesses?name=(销售态势-<%=@year %>-已回款商机)&date_at=<%= @year %>" style="color: #0000FF;float: right">查看商机</a></h5>
144
+ <h5>已回款<a href="/missions/money_plans/list?date_at=<%= @year %>" style="color: #0000FF;float: right">查看商机</a></h5>
145
145
  </div>
146
146
  <div class="panel-content y-t-10">
147
147
  <h1 class="no-margins"><%= @return_amount %>万</h1>
@@ -192,7 +192,7 @@
192
192
  <div class="panel layui-bg-number">
193
193
  <div class="panel-body">
194
194
  <div class="panel-title">
195
- <h5>应收款<a href="/missions/businesses?name=(销售态势-<%=@year %>-应收款商机)&step=应收款&bidded_date_year=<%= @year %>" style="color: #0000FF;float: right">查看商机</a></h5>
195
+ <h5>应收款<a href="/missions/contracts?date_at=<%= @year %>" style="color: #0000FF;float: right">查看商机</a></h5>
196
196
  </div>
197
197
  <div class="panel-content y-t-10">
198
198
  <h1 class="no-margins"><%= @receivable_amount.round(2) %>万</h1>
@@ -271,11 +271,11 @@
271
271
  } else if (data.index == 5 && $("#tab_6").length == 0) {
272
272
  loadPage('/missions/sale_trends/goal_forecast')
273
273
  } else if (data.index == 6 && $("#tab_7").length == 0) {
274
- loadPage('/missions/sale_trends/user_stat')
274
+ loadPage('/missions/sale_trends/return_money_forecast')
275
275
  } else if (data.index == 7 && $("#tab_8").length == 0) {
276
- loadPage('/missions/sale_trends/visit_analysis')
276
+ loadPage('/missions/sale_trends/user_stat')
277
277
  } else if (data.index == 8 && $("#tab_9").length == 0) {
278
- loadPage('/missions/sale_trends/return_money_forecast')
278
+ loadPage('/missions/sale_trends/visit_analysis')
279
279
  }
280
280
  });
281
281
 
@@ -1 +1 @@
1
- $("#page_7").html("<%= j render 'user_stat' %>");
1
+ $("#page_8").html("<%= j render 'user_stat' %>");
@@ -1 +1 @@
1
- $("#page_8").html("<%= j render 'visit_analysis' %>");
1
+ $("#page_9").html("<%= j render 'visit_analysis' %>");