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.
- checksums.yaml +4 -4
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
- data/app/assets/javascripts/educode_sales/application.js +1 -0
- data/app/assets/javascripts/educode_sales/functions.js +24 -0
- data/app/controllers/educode_sales/application_controller.rb +11 -3
- data/app/controllers/educode_sales/business_courses_controller.rb +19 -8
- data/app/controllers/educode_sales/follow_ups_controller.rb +4 -0
- data/app/controllers/educode_sales/plans_controller.rb +718 -11
- data/app/controllers/educode_sales/shixuns_controller.rb +20 -10
- data/app/controllers/educode_sales/subjects_controller.rb +10 -6
- data/app/controllers/educode_sales/teacher_follows_controller.rb +4 -0
- data/app/controllers/educode_sales/teachers_controller.rb +3 -0
- data/app/models/educode_sales/business.rb +5 -5
- data/app/models/educode_sales/permission.rb +7 -0
- data/app/models/educode_sales/sales_target.rb +10 -0
- data/app/models/educode_sales/sales_target_history.rb +11 -0
- data/app/models/educode_sales/sales_target_log.rb +11 -0
- data/app/views/educode_sales/business_courses/index.html.erb +1 -1
- data/app/views/educode_sales/business_courses/new.html.erb +2 -2
- data/app/views/educode_sales/businesses/_follows.html.erb +107 -100
- data/app/views/educode_sales/businesses/index.html.erb +6 -3
- data/app/views/educode_sales/businesses/index.json.jbuilder +2 -2
- data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -1
- data/app/views/educode_sales/contracts/_follows.html.erb +75 -69
- data/app/views/educode_sales/contracts/_list.html.erb +283 -249
- data/app/views/educode_sales/contracts/index.json.jbuilder +1 -1
- data/app/views/educode_sales/follow_ups/index.json.jbuilder +1 -1
- data/app/views/educode_sales/plans/_year_execute.html.erb +428 -0
- data/app/views/educode_sales/plans/_year_target.html.erb +792 -0
- data/app/views/educode_sales/plans/index.html.erb +105 -83
- data/app/views/educode_sales/plans/staff_year_business.html.erb +96 -0
- data/app/views/educode_sales/plans/staff_year_business.json.jbuilder +22 -0
- data/app/views/educode_sales/plans/staff_year_target.json.jbuilder +35 -0
- data/app/views/educode_sales/plans/staff_year_target_log.html.erb +62 -0
- data/app/views/educode_sales/plans/staff_year_target_log.json.jbuilder +34 -0
- data/app/views/educode_sales/plans/year_execute.js.erb +1 -0
- data/app/views/educode_sales/plans/year_target.js.erb +1 -0
- data/app/views/educode_sales/plans/year_target.json.jbuilder +48 -0
- data/app/views/educode_sales/plans/years_all_target.json.jbuilder +54 -0
- data/app/views/educode_sales/sales_details/_index.html.erb +6 -3
- data/app/views/educode_sales/shixun_dectects/markdown.html.erb +40 -1
- data/app/views/educode_sales/shixuns/index.html.erb +106 -97
- data/app/views/educode_sales/shixuns/new.html.erb +2 -2
- data/app/views/educode_sales/staffs/index.json.jbuilder +1 -1
- data/app/views/educode_sales/subjects/index.html.erb +1 -1
- data/app/views/educode_sales/subjects/new.html.erb +2 -2
- data/app/views/educode_sales/teachers/_follows.html.erb +24 -17
- data/app/views/educode_sales/teachers/_index.html.erb +6 -0
- data/app/views/layouts/educode_sales/application.html.erb +7 -4
- data/config/environments/development.rb +16 -0
- data/config/routes.rb +14 -2
- data/db/migrate/20230729085359_create_educode_sales_sales_target_histories.rb +45 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +24 -8
- data/app/views/educode_sales/plans/_target_track.html.erb +0 -178
- 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
|
4
|
-
<li data="weekly">周报</li
|
5
|
-
<li data="month">月计划</li
|
6
|
-
<li data="monthly">月报</li
|
7
|
-
<li data="year">年计划</li
|
8
|
-
|
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
|
-
|
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="
|
27
|
-
|
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
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
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
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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;
|
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
|
|