educode_sales 1.10.58 → 1.10.70

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/indexlogo.png +0 -0
  3. data/app/assets/javascripts/educode_sales/application.js +1 -0
  4. data/app/assets/javascripts/educode_sales/functions.js +24 -0
  5. data/app/controllers/educode_sales/application_controller.rb +11 -3
  6. data/app/controllers/educode_sales/business_courses_controller.rb +19 -8
  7. data/app/controllers/educode_sales/follow_ups_controller.rb +4 -0
  8. data/app/controllers/educode_sales/plans_controller.rb +718 -11
  9. data/app/controllers/educode_sales/shixuns_controller.rb +20 -10
  10. data/app/controllers/educode_sales/subjects_controller.rb +10 -6
  11. data/app/controllers/educode_sales/teacher_follows_controller.rb +4 -0
  12. data/app/controllers/educode_sales/teachers_controller.rb +3 -0
  13. data/app/models/educode_sales/business.rb +5 -5
  14. data/app/models/educode_sales/permission.rb +7 -0
  15. data/app/models/educode_sales/sales_target.rb +10 -0
  16. data/app/models/educode_sales/sales_target_history.rb +11 -0
  17. data/app/models/educode_sales/sales_target_log.rb +11 -0
  18. data/app/views/educode_sales/business_courses/index.html.erb +1 -1
  19. data/app/views/educode_sales/business_courses/new.html.erb +2 -2
  20. data/app/views/educode_sales/businesses/_follows.html.erb +107 -100
  21. data/app/views/educode_sales/businesses/index.html.erb +6 -3
  22. data/app/views/educode_sales/businesses/index.json.jbuilder +2 -2
  23. data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -1
  24. data/app/views/educode_sales/contracts/_follows.html.erb +75 -69
  25. data/app/views/educode_sales/contracts/_list.html.erb +283 -249
  26. data/app/views/educode_sales/contracts/index.json.jbuilder +1 -1
  27. data/app/views/educode_sales/follow_ups/index.json.jbuilder +1 -1
  28. data/app/views/educode_sales/plans/_year_execute.html.erb +428 -0
  29. data/app/views/educode_sales/plans/_year_target.html.erb +792 -0
  30. data/app/views/educode_sales/plans/index.html.erb +105 -83
  31. data/app/views/educode_sales/plans/staff_year_business.html.erb +96 -0
  32. data/app/views/educode_sales/plans/staff_year_business.json.jbuilder +22 -0
  33. data/app/views/educode_sales/plans/staff_year_target.json.jbuilder +35 -0
  34. data/app/views/educode_sales/plans/staff_year_target_log.html.erb +62 -0
  35. data/app/views/educode_sales/plans/staff_year_target_log.json.jbuilder +34 -0
  36. data/app/views/educode_sales/plans/year_execute.js.erb +1 -0
  37. data/app/views/educode_sales/plans/year_target.js.erb +1 -0
  38. data/app/views/educode_sales/plans/year_target.json.jbuilder +48 -0
  39. data/app/views/educode_sales/plans/years_all_target.json.jbuilder +54 -0
  40. data/app/views/educode_sales/sales_details/_index.html.erb +6 -3
  41. data/app/views/educode_sales/shixun_dectects/markdown.html.erb +40 -1
  42. data/app/views/educode_sales/shixuns/index.html.erb +106 -97
  43. data/app/views/educode_sales/shixuns/new.html.erb +2 -2
  44. data/app/views/educode_sales/staffs/index.json.jbuilder +1 -1
  45. data/app/views/educode_sales/subjects/index.html.erb +1 -1
  46. data/app/views/educode_sales/subjects/new.html.erb +2 -2
  47. data/app/views/educode_sales/teachers/_follows.html.erb +24 -17
  48. data/app/views/educode_sales/teachers/_index.html.erb +6 -0
  49. data/app/views/layouts/educode_sales/application.html.erb +7 -4
  50. data/config/environments/development.rb +16 -0
  51. data/config/routes.rb +14 -2
  52. data/db/migrate/20230729085359_create_educode_sales_sales_target_histories.rb +45 -0
  53. data/lib/educode_sales/version.rb +1 -1
  54. metadata +24 -8
  55. data/app/views/educode_sales/plans/_target_track.html.erb +0 -178
  56. data/app/views/educode_sales/plans/target_track.js.erb +0 -1
@@ -1,99 +1,121 @@
1
1
  <div class="layui-tab" lay-filter="sale_tab">
2
2
  <ul class="layui-tab-title">
3
- <li class="layui-this" data="week">周计划</li>
4
- <li data="weekly">周报</li>
5
- <li data="month">月计划</li>
6
- <li data="monthly">月报</li>
7
- <li data="year">年计划</li>
8
- <!-- <li data="target_track">年度执行</li> -->
3
+ <!-- <li data="week">周计划</li>-->
4
+ <!-- <li data="weekly">周报</li>-->
5
+ <!-- <li data="month">月计划</li>-->
6
+ <!-- <li data="monthly">月报</li>-->
7
+ <!-- <li data="year">年计划</li>-->
8
+ <li class="layui-this" data="year_execute">年度执行</li>
9
+ <li data="year_plan">年度目标</li>
9
10
  </ul>
10
11
  <div class="layui-tab-content">
11
- <div class="layui-tab-item layui-show">
12
- <%= render 'weekPlan' %>
13
- </div>
14
- <div class="layui-tab-item">
15
- <div id="weekly_tab_wraper"></div>
16
- </div>
17
- <div class="layui-tab-item ">
18
- <div id="month_plan_tab_wraper"></div>
19
- </div>
20
- <div class="layui-tab-item">
21
- <div id="monthly_tab_wraper"></div>
22
- </div>
23
- <div class="layui-tab-item">
24
- <div id="year_plan_tab_wraper"></div>
25
- </div>
26
- <div class="layui-tab-item" id="target_track_tab">
27
- </div>
12
+ <!-- <div class="layui-tab-item layui-show">-->
13
+ <%#= render 'weekPlan' %>
14
+ <!-- </div>-->
15
+ <!-- <div class="layui-tab-item">-->
16
+ <!-- <div id="weekly_tab_wraper"></div>-->
17
+ <!-- </div>-->
18
+ <!-- <div class="layui-tab-item ">-->
19
+ <!-- <div id="month_plan_tab_wraper"></div>-->
20
+ <!-- </div>-->
21
+ <!-- <div class="layui-tab-item">-->
22
+ <!-- <div id="monthly_tab_wraper"></div>-->
23
+ <!-- </div>-->
24
+ <!-- <div class="layui-tab-item">-->
25
+ <!-- <div id="year_plan_tab_wraper"></div>-->
26
+ <!-- </div>-->
27
+ <div class="layui-tab-item layui-show" id="year_execute_tab"></div>
28
+ <div class="layui-tab-item" id="year_target_tab"></div>
28
29
  </div>
29
30
  </div>
30
31
 
31
32
  <script>
32
- layui.use(['element', 'table', 'jquery'], function () {
33
- var $ = layui.jquery,
34
- table = layui.table,
35
- element = layui.element;
36
- // element.on('tab(sale_tab)', function (data) {
37
- // var status = $(this).attr('data')
38
- // switch (status) {
39
- // case 'week':
40
- // $("#week_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
41
- // $("#week_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
42
- // break;
43
- // case 'weekly':
44
- // $("#sales_weelky_table .layui-table-fixed-r")[0].classList.remove('layui-hide');
45
- // $("#sales_weelky_table .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
46
- // break;
47
- // ;
48
- // case 'monthly':
49
- // $("#monthly_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
50
- // $("#monthly_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
51
- // break;
52
- // case 'month':
53
- // $("#month_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
54
- // $("#month_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
55
- // break;
56
- // case 'year':
57
- // $("#year_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
58
- // $("#year_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
59
- // break;
60
- // }
61
-
62
-
63
- // })
33
+ layui.use(['element', 'table', 'jquery'], function () {
34
+ var $ = layui.jquery,
35
+ table = layui.table,
36
+ element = layui.element;
37
+ // element.on('tab(sale_tab)', function (data) {
38
+ // var status = $(this).attr('data')
39
+ // switch (status) {
40
+ // case 'week':
41
+ // $("#week_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
42
+ // $("#week_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
43
+ // break;
44
+ // case 'weekly':
45
+ // $("#sales_weelky_table .layui-table-fixed-r")[0].classList.remove('layui-hide');
46
+ // $("#sales_weelky_table .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
47
+ // break;
48
+ // ;
49
+ // case 'monthly':
50
+ // $("#monthly_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
51
+ // $("#monthly_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
52
+ // break;
53
+ // case 'month':
54
+ // $("#month_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
55
+ // $("#month_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
56
+ // break;
57
+ // case 'year':
58
+ // $("#year_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
59
+ // $("#year_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
60
+ // break;
61
+ // }
64
62
 
65
63
 
66
- element.render();
67
- element.on('tab(sale_tab)', function(data) {
68
- if (data.index == 1 && $("#sales_weelky_table").length == 0) {
69
- loadPage('/missions/plans/weekly')
70
- } else if (data.index == 2 && $("#month_table_wraper").length == 0) {
71
- loadPage('/missions/plans/month_plan')
72
- } else if (data.index == 3 && $("#monthly_table_wraper").length == 0) {
73
- loadPage('/missions/plans/monthly')
74
- } else if (data.index == 4 && $("#year_table_wraper").length == 0) {
75
- loadPage('/missions/plans/year_plan')
76
- } else if (data.index == 5 && $("#target_track_wraper").length == 0) {
77
- loadPage('/missions/plans/target_track')
78
- }
79
- });
64
+ // })
65
+ loadPage('/missions/plans/year_execute')
66
+ //loadPage('/missions/plans/year_target')
67
+ element.render();
68
+ element.on('tab(sale_tab)', function (data) {
69
+ if (data.index === 0 && $("#year_execute_wraper").length == 0) {
70
+ loadPage('/missions/plans/year_execute')
71
+ } else if (data.index === 1 && $("#year_target_wraper").length == 0) {
72
+ loadPage('/missions/plans/year_target')
73
+ }
74
+ });
75
+ /*
76
+ element.on('tab(sale_tab)', function (data) {
77
+ if (data.index == 1 && $("#sales_weelky_table").length == 0) {
78
+ loadPage('/missions/plans/weekly')
79
+ } else if (data.index == 2 && $("#month_table_wraper").length == 0) {
80
+ loadPage('/missions/plans/month_plan')
81
+ } else if (data.index == 3 && $("#monthly_table_wraper").length == 0) {
82
+ loadPage('/missions/plans/monthly')
83
+ } else if (data.index == 4 && $("#year_table_wraper").length == 0) {
84
+ loadPage('/missions/plans/year_plan')
85
+ } else if (data.index == 5 && $("#year_execute_wraper").length == 0) {
86
+ loadPage('/missions/plans/year_execute')
87
+ } else if (data.index == 6 && $("#year_target_wraper").length == 0) {
88
+ loadPage('/missions/plans/year_target')
89
+ }
90
+ });
91
+ */
80
92
 
81
93
 
82
- function loadPage(url) {
83
- var layer_index = layer.load(0, {shade: [0.1, '#fff']});
84
- Rails.ajax({
85
- url: url,
86
- type: 'GET',
87
- dataType: "script",
88
- success: function (res) {
89
- layer.close(layer_index);
94
+ function loadPage(url) {
95
+ var layer_index = layer.load(0, {shade: [0.1, '#fff']});
96
+ Rails.ajax({
97
+ url: url,
98
+ type: 'GET',
99
+ dataType: "script",
100
+ success: function (res) {
101
+ layer.close(layer_index);
102
+ }
103
+ });
90
104
  }
91
- });
92
- }
93
- })
94
- </script>
105
+ })
106
+ </script>
95
107
  <style>
96
- .layui-table-tool-temp{
97
- padding-right: 30px; !important;
108
+ .layui-table-tool-temp {
109
+ padding-right: 30px;
110
+ !important;
111
+ }
112
+
113
+ .layui-table-view .layui-table td[data-edit] .layui-table-cell {
114
+ background: #e4fad2;
115
+ }
116
+
117
+ .mtarget {
118
+ color: #46d1db;
119
+ font-weight: bold;
98
120
  }
99
121
  </style>
@@ -0,0 +1,96 @@
1
+ <style>
2
+ /* 添加自定义样式规则来居中对齐表格内容 */
3
+ .z-index .layui-table-tool{
4
+ z-index: 10000; !important;
5
+ }
6
+ </style>
7
+ <script type="text/html" id="staff_year_target_log_toolbar">
8
+ <div class="layui-btn-container">
9
+ <span class="table-label">
10
+ </span>
11
+ </div>
12
+ </script>
13
+ <div class="z-index">
14
+ <table class="layui-hide" id="staff_year_business" lay-filter="staff_year_business"></table>
15
+ </div>
16
+ <script>
17
+ var hide = false;
18
+ </script>
19
+ <% if @type == 'plan' %>
20
+ <% if @target_clazz == '中标' %>
21
+ <script>
22
+ var moneyTitle = "计划投标金额";
23
+ var moneyTime = "计划投标时间";
24
+ var createTime = "计划创建时间";
25
+ </script>
26
+ <% elsif @target_clazz == '商机' %>
27
+ <script>
28
+ var moneyTitle = "计划A类金额";
29
+ var moneyTime = "计划A类时间";
30
+ var createTime = "计划创建时间";
31
+ </script>
32
+ <% elsif @target_clazz == '回款' %>
33
+ <script>
34
+ var moneyTitle = "计划回款金额";
35
+ var moneyTime = "计划回款时间";
36
+ var createTime = "计划创建时间";
37
+ </script>
38
+ <% end %>
39
+ <% elsif @type == 'finish' %>
40
+ <% if @target_clazz == '中标' %>
41
+ <script>
42
+ var moneyTitle = "合同额";
43
+ var moneyTime = "中标时间";
44
+ var createTime = "创建时间";
45
+ var hide = true;
46
+ </script>
47
+ <% elsif @target_clazz == '商机' %>
48
+ <script>
49
+ var moneyTitle = "预算额";
50
+ var moneyTime = "中标时间";
51
+ var createTime = "创建时间";
52
+ var hide = true;
53
+ </script>
54
+ <% elsif @target_clazz == '回款' %>
55
+ <script>
56
+ var moneyTitle = "回款金额";
57
+ var moneyTime = "回款时间";
58
+ var createTime = "创建时间";
59
+ var hide = true;
60
+ </script>
61
+ <% end %>
62
+ <% end %>
63
+ <script>
64
+ layui.use(['form', 'table', 'miniPage', 'element'], function () {
65
+ var $ = layui.jquery,
66
+ form = layui.form,
67
+ request =layui.request,
68
+ miniPage = layui.miniPage;
69
+ table = layui.table;
70
+ table.render({
71
+ elem: '#staff_year_business',
72
+ url: '/missions/plans/staff_year_business?year=' + parent._year + '&month=' + parent.month
73
+ + '&school_tag_id=' + parent.school_tag_id + '&staff_id=' + parent.staff_id
74
+ + '&target_clazz=' + parent._target_clazz + '&type=' + parent.type,
75
+ toolbar: '#staff_year_business_toolbar',
76
+ defaultToolbar: ['filter', 'exports'],
77
+ totalRow: true,
78
+ cols: [[
79
+ {field: 'id', title: '序号', type: 'numbers', totalRowText: '合计'}
80
+ , {field: 'name', title: '商机名称'}
81
+ , {field: 'school', title: '单位'}
82
+ , {field: 'school_tag_name', title: '客户类型'}
83
+ , {field: 'target_clazz', title: '目标类别'}
84
+ , {field: 'clazz', title: '商机类型'}
85
+ , {field: 'money', title: moneyTitle, totalRow: true}
86
+ , {field: 'time', title: moneyTime}
87
+ , {field: 'created_at', title: createTime, hide: hide}
88
+ , {field: 'staff', title: '销售经理'}
89
+ ]],
90
+ page: true
91
+ });
92
+ });
93
+ </script>
94
+ <style>
95
+
96
+ </style>
@@ -0,0 +1,22 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.id d.id
4
+ json.name d.name
5
+ json.clazz_id d.clazz_id
6
+ json.clazz d.clazz.name
7
+ json.staff d&.last_follow_up&.assign_follow_ups.present? ? (d&.last_follow_up&.assign_follow_ups.map{ |d| d.staff&.user&.real_name}.join("、")) : d.staff&.user&.real_name
8
+ json.school_id d.school_id
9
+ json.school d.department&.school&.name
10
+ json.school_tag_name d.school_tag_name
11
+ json.school_tag_id d.school_tag_id
12
+ json.year @year
13
+ json.target_clazz @target_clazz
14
+ json.money d.money
15
+ json.time d.time
16
+ json.created_at d.created_at.to_s(:date)
17
+
18
+ end
19
+ end
20
+
21
+ json.code 0
22
+ json.count @data.total_count
@@ -0,0 +1,35 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.id d.id
4
+ json.staff d.staff.user.real_name
5
+ json.staff_id d.staff_id
6
+ json.school_tag d.school_tag.name
7
+ json.school_tag_id d.school_tag_id
8
+ json.year d.year
9
+ json.target_clazz d.target_clazz
10
+ json.year_target d.year_target
11
+ json.year_finish d.year_finish
12
+ json.year_diff d.year_diff
13
+ json.reviewer d.reviewer&.user&.real_name
14
+ json.comment d.comment
15
+ json.state d.state
16
+ json.target_1 d.target_1
17
+ json.target_2 d.target_2
18
+ json.target_3 d.target_3
19
+ json.target_4 d.target_4
20
+ json.target_5 d.target_5
21
+ json.target_6 d.target_6
22
+ json.target_7 d.target_7
23
+ json.target_8 d.target_8
24
+ json.target_9 d.target_9
25
+ json.target_10 d.target_10
26
+ json.target_11 d.target_11
27
+ json.target_12 d.target_12
28
+ json.updated_at d.updated_at.to_s(:date)
29
+ json.created_at d.created_at.to_s(:date)
30
+
31
+ end
32
+ end
33
+
34
+ json.code 0
35
+ json.count @data.total_count
@@ -0,0 +1,62 @@
1
+ <style>
2
+ /* 添加自定义样式规则来居中对齐表格内容 */
3
+ .z-index .layui-table-tool{
4
+ z-index: 10000; !important;
5
+ }
6
+ </style>
7
+ <script type="text/html" id="staff_year_target_log_toolbar">
8
+ <div class="layui-btn-container">
9
+ <span class="table-label">
10
+ </span>
11
+ </div>
12
+ </script>
13
+ <div class="z-index">
14
+ <table class="layui-hide" id="staff_year_target_log" lay-filter="staff_year_target_log"></table>
15
+ </div>
16
+
17
+ <script>
18
+ layui.use(['form', 'table', 'miniPage', 'element'], function () {
19
+ var $ = layui.jquery,
20
+ form = layui.form,
21
+ request =layui.request,
22
+ miniPage = layui.miniPage;
23
+
24
+ table = layui.table;
25
+ table.render({
26
+ elem: '#staff_year_target_log',
27
+ url: '/missions/plans/staff_year_target_log?target_id=' + parent.id ,
28
+ toolbar: '#staff_year_target_log_toolbar',
29
+ defaultToolbar: ['filter', 'exports'],
30
+ cols: [[
31
+ {field: 'id', title: '序号', width: 80, type: 'numbers'}
32
+ , {field: 'staff', title: '姓名', width: 100}
33
+ , {field: 'school_tag', title: '客户类型', width: 100}
34
+ , {field: 'target_clazz', title: '目标类别', width: 100}
35
+ , {field: 'year', title: '年份', width: 100}
36
+ , {field: 'year_target', title: '年度目标', minWidth: 100}
37
+ , {field: 'year_finish', title: '年度完成', minWidth: 100}
38
+ , {field: 'year_diff', title: '年度差额', minWidth: 100}
39
+ , {field: 'target_1', title: '1月', minWidth: 60}
40
+ , {field: 'target_2', title: '2月', minWidth: 60}
41
+ , {field: 'target_3', title: '3月', minWidth: 60}
42
+ , {field: 'target_4', title: '4月', minWidth: 60}
43
+ , {field: 'target_5', title: '5月', minWidth: 60}
44
+ , {field: 'target_6', title: '6月', minWidth: 60}
45
+ , {field: 'target_7', title: '7月', minWidth: 60}
46
+ , {field: 'target_8', title: '8月', minWidth: 60}
47
+ , {field: 'target_9', title: '9月', minWidth: 60}
48
+ , {field: 'target_10', title: '10月', minWidth: 60}
49
+ , {field: 'target_11', title: '11月', minWidth: 60}
50
+ , {field: 'target_12', title: '12月', minWidth: 60}
51
+ , {field: 'state', title: '状态', width: 100}
52
+ , {field: 'reviewer', title: '审批人', width: 100}
53
+ , {field: 'comment', title: '审核意见', width: 150}
54
+ , {field: 'updated_at', title: '更新时间', width: 180}
55
+ ]],
56
+ page: true
57
+ });
58
+ });
59
+ </script>
60
+ <style>
61
+
62
+ </style>
@@ -0,0 +1,34 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.id d.id
4
+ json.staff d.staff.user.real_name
5
+ json.staff_id d.staff_id
6
+ json.school_tag d.school_tag.name
7
+ json.school_tag_id d.school_tag_id
8
+ json.year d.year
9
+ json.target_clazz d.target_clazz
10
+ json.year_target d.year_target
11
+ json.year_finish d.year_finish
12
+ json.year_diff d.year_diff
13
+ json.reviewer d.reviewer&.user&.real_name
14
+ json.comment d.comment
15
+ json.state d.state
16
+ json.target_1 d.target_1
17
+ json.target_2 d.target_2
18
+ json.target_3 d.target_3
19
+ json.target_4 d.target_4
20
+ json.target_5 d.target_5
21
+ json.target_6 d.target_6
22
+ json.target_7 d.target_7
23
+ json.target_8 d.target_8
24
+ json.target_9 d.target_9
25
+ json.target_10 d.target_10
26
+ json.target_11 d.target_11
27
+ json.target_12 d.target_12
28
+ json.updated_at d.updated_at.to_s(:db)
29
+
30
+ end
31
+ end
32
+
33
+ json.code 0
34
+ json.count @data.count
@@ -0,0 +1 @@
1
+ $("#year_execute_tab").html("<%= j render 'year_execute' %>");
@@ -0,0 +1 @@
1
+ $("#year_target_tab").html("<%= j render 'year_target' %>");
@@ -0,0 +1,48 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.id d.id
4
+ json.num d.num
5
+ json.is_use d.is_use
6
+ json.staff d.staff.user.real_name
7
+ json.staff_id d.staff_id
8
+ json.school_tag d.school_tag.name
9
+ json.school_tag_id d.school_tag_id
10
+ json.year d.year
11
+ json.target_clazz d.target_clazz
12
+ json.year_target d.year_target
13
+ json.year_finish d.year_finish
14
+ json.year_diff d.year_diff
15
+ json.reviewer d.reviewer&.user&.real_name
16
+ json.comment d.comment
17
+ json.state d.state
18
+ json.target_1 d.target_1
19
+ json.m_target_1 d.m_target_1
20
+ json.target_2 d.target_2
21
+ json.m_target_2 d.m_target_2
22
+ json.target_3 d.target_3
23
+ json.m_target_3 d.m_target_3
24
+ json.target_4 d.target_4
25
+ json.m_target_4 d.m_target_4
26
+ json.target_5 d.target_5
27
+ json.m_target_5 d.m_target_5
28
+ json.target_6 d.target_6
29
+ json.m_target_6 d.m_target_6
30
+ json.target_7 d.target_7
31
+ json.m_target_7 d.m_target_7
32
+ json.target_8 d.target_8
33
+ json.m_target_8 d.m_target_8
34
+ json.target_9 d.target_9
35
+ json.m_target_9 d.m_target_9
36
+ json.target_10 d.target_10
37
+ json.m_target_10 d.m_target_10
38
+ json.target_11 d.target_11
39
+ json.m_target_11 d.m_target_11
40
+ json.target_12 d.target_12
41
+ json.m_target_12 d.m_target_12
42
+ json.updated_at d.updated_at.to_s(:date)
43
+
44
+ end
45
+ end
46
+
47
+ json.code 0
48
+ json.count @data.total_count
@@ -0,0 +1,54 @@
1
+ json.data do
2
+ json.array! @data do |item|
3
+ json.id item['id']
4
+ json.staff_id item['staff_id']
5
+ json.name item['name']
6
+ json.school_tag_id item['school_tag_id']
7
+ json.school_tag_name item['school_tag_name']
8
+ json.target_clazz item['target_clazz']
9
+ json.target_1 item['target_1'].present? ? item['target_1'].round(2) : 0
10
+ json.target_2 item['target_2'].present? ? item['target_2'].round(2) : 0
11
+ json.target_3 item['target_3'].present? ? item['target_3'].round(2) : 0
12
+ json.target_4 item['target_4'].present? ? item['target_4'].round(2) : 0
13
+ json.target_5 item['target_5'].present? ? item['target_5'].round(2) : 0
14
+ json.target_6 item['target_6'].present? ? item['target_6'].round(2) : 0
15
+ json.target_7 item['target_7'].present? ? item['target_7'].round(2) : 0
16
+ json.target_8 item['target_8'].present? ? item['target_8'].round(2) : 0
17
+ json.target_9 item['target_9'].present? ? item['target_9'].round(2) : 0
18
+ json.target_10 item['target_10'].present? ? item['target_10'].round(2) : 0
19
+ json.target_11 item['target_11'].present? ? item['target_11'].round(2) : 0
20
+ json.target_12 item['target_12'].present? ? item['target_12'].round(2) : 0
21
+ json.finish_1 item['finish_1'].present? ? item['finish_1'].round(2) : 0
22
+ json.finish_2 item['finish_2'].present? ? item['finish_2'].round(2) : 0
23
+ json.finish_3 item['finish_3'].present? ? item['finish_3'].round(2) : 0
24
+ json.finish_4 item['finish_4'].present? ? item['finish_4'].round(2) : 0
25
+ json.finish_5 item['finish_5'].present? ? item['finish_5'].round(2) : 0
26
+ json.finish_6 item['finish_6'].present? ? item['finish_6'].round(2) : 0
27
+ json.finish_7 item['finish_7'].present? ? item['finish_7'].round(2) : 0
28
+ json.finish_8 item['finish_8'].present? ? item['finish_8'].round(2) : 0
29
+ json.finish_9 item['finish_9'].present? ? item['finish_9'].round(2) : 0
30
+ json.finish_10 item['finish_10'].present? ? item['finish_10'].round(2) : 0
31
+ json.finish_11 item['finish_11'].present? ? item['finish_11'].round(2) : 0
32
+ json.finish_12 item['finish_12'].present? ? item['finish_12'].round(2) : 0
33
+ json.plan_1 item['plan_1'].present? ? item['plan_1'].round(2) : 0
34
+ json.plan_2 item['plan_2'].present? ? item['plan_2'].round(2) : 0
35
+ json.plan_3 item['plan_3'].present? ? item['plan_3'].round(2) : 0
36
+ json.plan_4 item['plan_4'].present? ? item['plan_4'].round(2) : 0
37
+ json.plan_5 item['plan_5'].present? ? item['plan_5'].round(2) : 0
38
+ json.plan_6 item['plan_6'].present? ? item['plan_6'].round(2) : 0
39
+ json.plan_7 item['plan_7'].present? ? item['plan_7'].round(2) : 0
40
+ json.plan_8 item['plan_8'].present? ? item['plan_8'].round(2) : 0
41
+ json.plan_9 item['plan_9'].present? ? item['plan_9'].round(2) : 0
42
+ json.plan_10 item['plan_10'].present? ? item['plan_10'].round(2) : 0
43
+ json.plan_11 item['plan_11'].present? ? item['plan_11'].round(2) : 0
44
+ json.plan_12 item['plan_12'].present? ? item['plan_12'].round(2) : 0
45
+ json.year_target 0
46
+ json.year_clazz_target ((item['target_1'].present? ? item['target_1'].round(2) : 0)+(item['target_2'].present? ? item['target_2'].round(2) : 0)+(item['target_3'].present? ? item['target_3'].round(2) : 0)+(item['target_4'].present? ? item['target_4'].round(2) : 0)+(item['target_5'].present? ? item['target_5'].round(2) : 0)+(item['target_6'].present? ? item['target_6'].round(2) : 0)+(item['target_7'].present? ? item['target_7'].round(2) : 0)+(item['target_8'].present? ? item['target_8'].round(2) : 0)+(item['target_9'].present? ? item['target_9'].round(2) : 0)+(item['target_10'].present? ? item['target_10'].round(2) : 0)+(item['target_11'].present? ? item['target_11'].round(2) : 0)+(item['target_12'].present? ? item['target_12'].round(2) : 0)).round(2)
47
+ json.year_plan item['year_plan'].round(2)
48
+ json.year_finish ((item['finish_1'].present? ? item['finish_1'].round(2) : 0)+(item['finish_2'].present? ? item['finish_2'].round(2) : 0)+(item['finish_3'].present? ? item['finish_3'].round(2) : 0)+(item['finish_4'].present? ? item['finish_4'].round(2) : 0)+(item['finish_5'].present? ? item['finish_5'].round(2) : 0)+(item['finish_6'].present? ? item['finish_6'].round(2) : 0)+(item['finish_7'].present? ? item['finish_7'].round(2) : 0)+(item['finish_8'].present? ? item['finish_8'].round(2) : 0)+(item['finish_9'].present? ? item['finish_9'].round(2) : 0)+(item['finish_10'].present? ? item['finish_10'].round(2) : 0)+(item['finish_11'].present? ? item['finish_11'].round(2) : 0)+(item['finish_12'].present? ? item['finish_12'].round(2) : 0)).round(2)
49
+ json.year_diff ((item['target_1'].present? ? item['target_1'].round(2) : 0)+(item['target_2'].present? ? item['target_2'].round(2) : 0)+(item['target_3'].present? ? item['target_3'].round(2) : 0)+(item['target_4'].present? ? item['target_4'].round(2) : 0)+(item['target_5'].present? ? item['target_5'].round(2) : 0)+(item['target_6'].present? ? item['target_6'].round(2) : 0)+(item['target_7'].present? ? item['target_7'].round(2) : 0)+(item['target_8'].present? ? item['target_8'].round(2) : 0)+(item['target_9'].present? ? item['target_9'].round(2) : 0)+(item['target_10'].present? ? item['target_10'].round(2) : 0)+(item['target_11'].present? ? item['target_11'].round(2) : 0)+(item['target_12'].present? ? item['target_12'].round(2) : 0)) - ((item['finish_1'].present? ? item['finish_1'].round(2) : 0)+(item['finish_2'].present? ? item['finish_2'].round(2) : 0)+(item['finish_3'].present? ? item['finish_3'].round(2) : 0)+(item['finish_4'].present? ? item['finish_4'].round(2) : 0)+(item['finish_5'].present? ? item['finish_5'].round(2) : 0)+(item['finish_6'].present? ? item['finish_6'].round(2) : 0)+(item['finish_7'].present? ? item['finish_7'].round(2) : 0)+(item['finish_8'].present? ? item['finish_8'].round(2) : 0)+(item['finish_9'].present? ? item['finish_9'].round(2) : 0)+(item['finish_10'].present? ? item['finish_10'].round(2) : 0)+(item['finish_11'].present? ? item['finish_11'].round(2) : 0)+(item['finish_12'].present? ? item['finish_12'].round(2) : 0)).round(2)
50
+ end
51
+ end
52
+
53
+ json.code 0
54
+ json.count @total_count
@@ -88,7 +88,7 @@
88
88
  <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" id="upload_sales_btn" style="margin-left: 20px;">批量导入销售明细</button>
89
89
  </script>
90
90
  <script>
91
- layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate', 'dropdown', 'laytpl', 'xmSelect', 'upload'], function() {
91
+ layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate', 'dropdown', 'laytpl', 'xmSelect', 'upload', 'functions'], function() {
92
92
  var $ = layui.jquery,
93
93
  form = layui.form,
94
94
  request = layui.request,
@@ -96,7 +96,8 @@
96
96
  dropdown = layui.dropdown,
97
97
  xmSelect = layui.xmSelect,
98
98
  upload = layui.upload,
99
- laydate = layui.laydate;
99
+ laydate = layui.laydate,
100
+ functions = layui.functions;
100
101
  var openWH = miniPage.getOpenWidthHeight();
101
102
  laydate.render({
102
103
  elem: '#date',
@@ -223,7 +224,7 @@
223
224
  }]
224
225
  ]
225
226
 
226
-
227
+ cols_table[0] = functions.initTableColumnsFilter('sales_details_table', cols_table[0]);
227
228
  var sales_details_table = table.render({
228
229
  elem: '#sales_details_table',
229
230
  url: '/missions/sales_details',
@@ -244,6 +245,8 @@
244
245
  if ($('#upload_sales_btn').length > 0) {
245
246
  uploadSales();
246
247
  }
248
+ var that = this;
249
+ functions.observerTableColumnFilter(that);
247
250
  }
248
251
  });
249
252