educode_sales 0.9.26 → 0.9.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/educode_sales/assessments_controller.rb +33 -10
- data/app/controllers/educode_sales/businesses_controller.rb +5 -1
- data/app/models/educode_sales/assessments_setting.rb +3 -0
- data/app/views/educode_sales/assessments/_finished.html.erb +135 -0
- data/app/views/educode_sales/assessments/_setup.html.erb +27 -84
- data/app/views/educode_sales/assessments/finished.json.jbuilder +85 -0
- data/app/views/educode_sales/assessments/index.html.erb +22 -22
- data/app/views/educode_sales/assessments/index.json.jbuilder +3 -0
- data/app/views/educode_sales/assessments/new.html.erb +3 -2
- data/app/views/educode_sales/sale_trends/_business_followup_analysis.html.erb +9 -6
- data/config/routes.rb +1 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dae94f7427cfade72ce95b294b3fd759d975b369282d929a11aebd884168a2ca
|
4
|
+
data.tar.gz: ff21e034b9dc3cc0a8f6e956d62ea3f604f87644b004715fee5044626f175775
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7e1ea6e2c957bd4811b77dae36106f8e43fb5cbcc4463297922bb419bd937745520bd02914ebb9aed342441793bf61b8bdf88a52e7599ae9101e42d1a10ca7e
|
7
|
+
data.tar.gz: c31ad80e5afda10b9b74a26fb8e1f6966e9823b44599c84bc46ce2215cf78377b3d29da900bd43088316ea689053cbae9da4da57d31b5e77f17506619234fa22
|
@@ -51,6 +51,37 @@ module EducodeSales
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
+
def finished
|
55
|
+
if @current_admin.is_admin?
|
56
|
+
@assessments = AssessmentsSetting.all
|
57
|
+
else
|
58
|
+
level = @current_admin.role.role_areas.find_by(clazz: '绩效考核').level
|
59
|
+
case level
|
60
|
+
when '自己'
|
61
|
+
@assessments = AssessmentsSetting.where(staff_id: @current_admin.id)
|
62
|
+
when '区域'
|
63
|
+
@staffs = EducodeSales::Staff.joins(:areas).where("educode_sales_commons.id in (?)", @current_admin.areas.pluck(:id)).distinct
|
64
|
+
@assessments = EducodeSales::AssessmentsSetting.where(staff_id: @staffs.select(:id))
|
65
|
+
else
|
66
|
+
@assessments = AssessmentsSetting.all
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
if params[:assessment_year].present?
|
71
|
+
@assessments = @assessments.where(assessment_year: Time.new(params[:assessment_year])..Time.new(params[:assessment_year]).end_of_year)
|
72
|
+
end
|
73
|
+
|
74
|
+
if params[:assessment_id].present?
|
75
|
+
@assessments = @assessments.where(assessment: params[:assessment_id])
|
76
|
+
end
|
77
|
+
|
78
|
+
if params[:staff_id].present?
|
79
|
+
@assessments = @assessments.where(staff_id: params[:staff_id])
|
80
|
+
end
|
81
|
+
|
82
|
+
@assessments = @assessments.order("created_at desc")
|
83
|
+
end
|
84
|
+
|
54
85
|
# 新增
|
55
86
|
def create
|
56
87
|
begin
|
@@ -79,16 +110,8 @@ module EducodeSales
|
|
79
110
|
@assessment = AssessmentsSetting.find_by(id: params[:id])
|
80
111
|
@username = @assessment.staff.user.real_name
|
81
112
|
@year = @assessment.assessment_year.to_s[0..3]
|
82
|
-
|
83
|
-
|
84
|
-
@assessment_name = "签单金额"
|
85
|
-
when 2
|
86
|
-
@assessment_name = "回款金额"
|
87
|
-
when 3
|
88
|
-
@assessment_name = "拜访量"
|
89
|
-
when 4
|
90
|
-
@assessment_name = "新增商机数"
|
91
|
-
end
|
113
|
+
@assessment_name = EducodeSales::AssessmentsSetting::CLAZZ[@assessment.assessment]
|
114
|
+
|
92
115
|
render layout: false
|
93
116
|
end
|
94
117
|
|
@@ -34,7 +34,11 @@ module EducodeSales
|
|
34
34
|
end
|
35
35
|
|
36
36
|
if params[:bidded_date_year].present? && params[:bidded_date_year] != '全部'
|
37
|
-
|
37
|
+
if params[:step] == '应收款'
|
38
|
+
gon.bidded_date = "2015-01-01" + " - " + Time.new(params[:bidded_date_year]).end_of_year.strftime("%Y-%m-%d")
|
39
|
+
else
|
40
|
+
gon.bidded_date = Time.new(params[:bidded_date_year]).strftime("%Y-%m-%d") + " - " + Time.new(params[:bidded_date_year]).end_of_year.strftime("%Y-%m-%d")
|
41
|
+
end
|
38
42
|
end
|
39
43
|
|
40
44
|
if params[:signed_date_year].present? && params[:signed_date_year] != '全部'
|
@@ -0,0 +1,135 @@
|
|
1
|
+
<div class="layuimini-main min-height-table" id="monthly_table_wraper">
|
2
|
+
<form class="layui-form layui-form-pane" lay-filter="assessment_progress_form">
|
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" class="layui-input" autocomplete="off" name="assessment_year" value="<%= Time.now.year %>" id="assessment_year">
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<div class="layui-inline">
|
11
|
+
<label class="layui-form-label">考核指标</label>
|
12
|
+
<div class="layui-input-inline">
|
13
|
+
<select class="layui-select" name="assessment_id" >
|
14
|
+
<%= options_for_select EducodeSales::AssessmentsSetting::CLAZZ.invert.to_a, 7 %>
|
15
|
+
</select>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
<div class="layui-inline">
|
19
|
+
<label class="layui-form-label">考核人员</label>
|
20
|
+
<div class="layui-input-inline large-select">
|
21
|
+
<%= select_tag "staff_id", options_for_select(@staffs), { id: 'weekly_staff_id', include_blank: true} %>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<div class="layui-inline">
|
25
|
+
<button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="progress_resert_btn">重置
|
26
|
+
</button>
|
27
|
+
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="progress_search_btn">检索
|
28
|
+
</button>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</form>
|
32
|
+
|
33
|
+
<!--表格-->
|
34
|
+
<table class="layui-tab" id="finished_table" lay-filter="progressTable"></table>
|
35
|
+
</div>
|
36
|
+
<script type="text/html" id="progress_Toolbar">
|
37
|
+
<div class="layui-btn-container">
|
38
|
+
<span class="table-label">指标完成情况 单位:万元</span>
|
39
|
+
<% if can?(:export_result, EducodeSales::AssessmentsSetting) %>
|
40
|
+
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm data-count-edit export_more-btn pull-right" style="color: #0000FF;" data-name="export" data-id="export">
|
41
|
+
导出<i class="layui-icon layui-icon-down layui-nav-more" style="font-size: 12px"></i></button>
|
42
|
+
<%end %>
|
43
|
+
</div>
|
44
|
+
</script>
|
45
|
+
|
46
|
+
<script>
|
47
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'rate', 'laydate', 'request'], function () {
|
48
|
+
|
49
|
+
var $ = layui.jquery,
|
50
|
+
form = layui.form,
|
51
|
+
laydate = layui.laydate,
|
52
|
+
request = layui.request,
|
53
|
+
table = layui.table,
|
54
|
+
rate = layui.rate,
|
55
|
+
miniPage = layui.miniPage;
|
56
|
+
dropdown = layui.dropdown;
|
57
|
+
|
58
|
+
|
59
|
+
laydate.render({
|
60
|
+
elem: '#assessment_year',
|
61
|
+
type: 'year'
|
62
|
+
});
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
var progress_table = table.render({
|
67
|
+
elem: '#finished_table'
|
68
|
+
,toolbar: '#progress_Toolbar'
|
69
|
+
,totalRow:true
|
70
|
+
,title: "绩效考核指标完成情况" // 目前发现的作用(导出文件的文件名)
|
71
|
+
,defaultToolbar: ['filter']
|
72
|
+
,cols:[
|
73
|
+
[ //标题栏
|
74
|
+
{ title: '序号', width: 80, rowspan: 6, type:'numbers', fixed:'left', totalRowText:'合计'}
|
75
|
+
// ,{field: 'area', title: '大区', width: 100, rowspan: 6, fixed:'left'}
|
76
|
+
,{field: 'name', title: '考核人员', width: 120, rowspan: 6,fixed:'left'}
|
77
|
+
,{field: 'year', align: 'center', title: '考核年度', width: 100, rowspan: 6}
|
78
|
+
,{field: 'assessment', title: '指标类型', width: 120, rowspan: 6}
|
79
|
+
,{field: 'name', title: '绩效分', width: 120, rowspan: 6}
|
80
|
+
,{align: 'center', title: '年度任务', colspan: 5}
|
81
|
+
,{align: 'center', title: '一季度任务', colspan: 4}
|
82
|
+
,{align: 'center', title: '二季度任务', colspan: 5}
|
83
|
+
,{align: 'center', title: '三季度任务', colspan: 5}
|
84
|
+
,{align: 'center', title: '四季度任务', colspan: 5}
|
85
|
+
],
|
86
|
+
[
|
87
|
+
{field: 'annual', title: '任务', width: 100, totalRow:true}
|
88
|
+
,{field: 'annual_80', title: '保底', width: 100, totalRow:true}
|
89
|
+
,{field: 'annual_progress', title: '完成', width: 100, totalRow:true}
|
90
|
+
,{field: 'annual_rate', title: '任务完成率', width:120, totalRow:true}
|
91
|
+
,{field: 'annual_score', title: '综合得分', width: 100, totalRow:true}
|
92
|
+
|
93
|
+
,{field: 'quarter_1', title: '任务', width: 100, totalRow:true}
|
94
|
+
,{field: 'progress_1', title: '完成', width: 100, totalRow:true}
|
95
|
+
,{field: 'rate_1', title: '完成率', width: 100, totalRow:true}
|
96
|
+
,{field: 'score_1', title: '绩效得分', width: 100, totalRow:true}
|
97
|
+
|
98
|
+
,{field: 'quarter_2', title: '任务', width: 100, totalRow:true}
|
99
|
+
,{field: 'quarter_2_total', title: '累计任务', width: 100, totalRow:true}
|
100
|
+
,{field: 'progress_2', title: '完成', width: 100, totalRow:true}
|
101
|
+
,{field: 'rate_2', title: '完成率', width: 100, totalRow:true}
|
102
|
+
,{field: 'score_2', title: '绩效得分', width: 100, totalRow:true}
|
103
|
+
|
104
|
+
|
105
|
+
,{field: 'quarter_3', title: '任务', width: 100, totalRow:true}
|
106
|
+
,{field: 'quarter_3_total', title: '累计任务', width: 100, totalRow:true}
|
107
|
+
,{field: 'progress_3', title: '完成', width: 100, totalRow:true}
|
108
|
+
,{field: 'rate_3', title: '完成率', width: 100, totalRow:true}
|
109
|
+
,{field: 'score_3', title: '绩效得分', width: 100, totalRow:true}
|
110
|
+
|
111
|
+
,{field: 'quarter_4', title: '任务', width: 100, totalRow:true}
|
112
|
+
,{field: 'quarter_4_total', title: '累计任务', width: 100, totalRow:true}
|
113
|
+
,{field: 'progress_4', title: '完成', width: 100, totalRow:true}
|
114
|
+
,{field: 'rate_4', title: '完成率', width: 100, totalRow:true}
|
115
|
+
,{field: 'score_4', title: '绩效得分', width: 100, totalRow:true}
|
116
|
+
|
117
|
+
]]
|
118
|
+
});
|
119
|
+
loadFinishTable(form.val('assessment_progress_form'))
|
120
|
+
|
121
|
+
form.on('submit(progress_search_btn)', function (data) {
|
122
|
+
loadFinishTable(data.field)
|
123
|
+
return false;
|
124
|
+
})
|
125
|
+
|
126
|
+
function loadFinishTable(search) {
|
127
|
+
table.reload('finished_table', {
|
128
|
+
where: search,
|
129
|
+
url: '/missions/assessments/finished'
|
130
|
+
});
|
131
|
+
}
|
132
|
+
|
133
|
+
})
|
134
|
+
|
135
|
+
</script>
|
@@ -12,10 +12,7 @@
|
|
12
12
|
<label class="layui-form-label">考核指标</label>
|
13
13
|
<div class="layui-input-inline">
|
14
14
|
<select class="layui-select" name="assessment_id" >
|
15
|
-
|
16
|
-
<option value="2">回款金额</option>
|
17
|
-
<option value="3">拜访量</option>
|
18
|
-
<option value="4">新增商机数</option>
|
15
|
+
<%= options_for_select EducodeSales::AssessmentsSetting::CLAZZ.invert.to_a, 7 %>
|
19
16
|
</select>
|
20
17
|
</div>
|
21
18
|
</div>
|
@@ -41,7 +38,7 @@
|
|
41
38
|
|
42
39
|
<script type="text/html" id="toolbarDemo5">
|
43
40
|
<div class="layui-btn-container">
|
44
|
-
<span class="table-label"
|
41
|
+
<span class="table-label">人员任务指标 单位:万元</span>
|
45
42
|
<% if can?(:create, EducodeSales::AssessmentsSetting) %>
|
46
43
|
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="add" >添加人员任务指标</button>
|
47
44
|
<% end %>
|
@@ -75,7 +72,7 @@
|
|
75
72
|
laydate.render({
|
76
73
|
elem: '#assessments_year',
|
77
74
|
type: 'year',
|
78
|
-
value:
|
75
|
+
value: "<%= Time.now.year %>",
|
79
76
|
})
|
80
77
|
|
81
78
|
var cols_table = [//表头
|
@@ -94,106 +91,52 @@
|
|
94
91
|
hide: gon.filter["username"],
|
95
92
|
},
|
96
93
|
{
|
97
|
-
field: '
|
98
|
-
title: '
|
94
|
+
field: 'year',
|
95
|
+
title: '考核年度',
|
99
96
|
width: 100,
|
100
|
-
hide: gon.filter["
|
97
|
+
hide: gon.filter["year"],
|
101
98
|
},
|
102
99
|
{
|
103
|
-
field: '
|
104
|
-
title: '
|
105
|
-
width:
|
106
|
-
hide: gon.filter["
|
100
|
+
field: 'assessment',
|
101
|
+
title: '指标类型',
|
102
|
+
width: 120,
|
103
|
+
hide: gon.filter["assessment"],
|
107
104
|
},
|
108
105
|
{
|
109
|
-
field: '
|
110
|
-
title: '
|
111
|
-
width: 100,
|
112
|
-
hide: gon.filter.january,
|
113
|
-
},
|
114
|
-
{
|
115
|
-
field: 'february',
|
116
|
-
title: '2月',
|
106
|
+
field: 'annual',
|
107
|
+
title: '年度指标',
|
117
108
|
width: 100,
|
118
|
-
hide: gon.filter
|
109
|
+
hide: gon.filter["annual"],
|
119
110
|
},
|
120
111
|
{
|
121
|
-
field: '
|
122
|
-
title: '
|
123
|
-
width:
|
124
|
-
hide: gon.filter
|
112
|
+
field: 'first_quarter',
|
113
|
+
title: '一季度指标',
|
114
|
+
width: 140,
|
115
|
+
hide: gon.filter["first_quarter"],
|
125
116
|
},
|
126
117
|
{
|
127
118
|
field: 'second_quarter',
|
128
|
-
title: '
|
129
|
-
width:
|
119
|
+
title: '二季度指标',
|
120
|
+
width: 140,
|
130
121
|
hide: gon.filter.second_quarter,
|
131
122
|
},
|
132
|
-
{
|
133
|
-
field: 'april',
|
134
|
-
title: '4月',
|
135
|
-
width: 100,
|
136
|
-
hide: gon.filter.april,
|
137
|
-
},
|
138
|
-
{
|
139
|
-
field: 'may',
|
140
|
-
title: '5月',
|
141
|
-
width: 100,
|
142
|
-
hide: gon.filter.may,
|
143
|
-
},
|
144
|
-
{
|
145
|
-
field: 'june',
|
146
|
-
title: '6月',
|
147
|
-
width: 100,
|
148
|
-
hide: gon.filter.june,
|
149
|
-
},
|
150
123
|
{
|
151
124
|
field: 'third_quarter',
|
152
|
-
title: '
|
153
|
-
width:
|
125
|
+
title: '三季度指标',
|
126
|
+
width: 140,
|
154
127
|
hide: gon.filter.third_quarter,
|
155
128
|
},
|
156
|
-
{
|
157
|
-
field: 'july',
|
158
|
-
title: '7月',
|
159
|
-
width: 100,
|
160
|
-
hide: gon.filter.july,
|
161
|
-
},
|
162
|
-
{
|
163
|
-
field: 'august',
|
164
|
-
title: '8月',
|
165
|
-
width: 100,
|
166
|
-
hide: gon.filter.august,
|
167
|
-
},
|
168
|
-
{
|
169
|
-
field: 'september',
|
170
|
-
title: '9月',
|
171
|
-
width: 100,
|
172
|
-
hide: gon.filter.september,
|
173
|
-
},
|
174
129
|
{
|
175
130
|
field: 'fourth_quarter',
|
176
|
-
title: '
|
177
|
-
width:
|
131
|
+
title: '四季度指标',
|
132
|
+
width: 140,
|
178
133
|
hide: gon.filter.fourth_quarter,
|
179
134
|
},
|
180
135
|
{
|
181
|
-
field: '
|
182
|
-
title: '
|
183
|
-
width:
|
184
|
-
hide: gon.filter
|
185
|
-
},
|
186
|
-
{
|
187
|
-
field: 'november',
|
188
|
-
title: '11月',
|
189
|
-
width: 100,
|
190
|
-
hide: gon.filter.november,
|
191
|
-
},
|
192
|
-
{
|
193
|
-
field: 'december',
|
194
|
-
title: '12月',
|
195
|
-
width: 100,
|
196
|
-
hide: gon.filter.december,
|
136
|
+
field: 'annual_lower',
|
137
|
+
title: '保底指标',
|
138
|
+
width: 120,
|
139
|
+
hide: gon.filter["annual_lower"],
|
197
140
|
},
|
198
141
|
{
|
199
142
|
field: 'option',
|
@@ -0,0 +1,85 @@
|
|
1
|
+
json.data do
|
2
|
+
|
3
|
+
json.array! @assessments do |assessment|
|
4
|
+
# 目标任务
|
5
|
+
json.name assessment.staff.user.real_name
|
6
|
+
json.id assessment.id
|
7
|
+
json.year params[:assessment_year]
|
8
|
+
json.annual assessment.annual.to_f.round(2)
|
9
|
+
json.annual_80 (assessment.annual.to_f * 0.8).round(2)
|
10
|
+
json.quarter_1 assessment.first_quarter.to_f.round(2)
|
11
|
+
json.quarter_2 assessment.second_quarter.to_f.round(2)
|
12
|
+
json.quarter_3 assessment.third_quarter.to_f.round(2)
|
13
|
+
json.quarter_4 assessment.fourth_quarter.to_f.round(2)
|
14
|
+
# 实际任务
|
15
|
+
json.annual_progress assessment.annual_progress.to_f.round(2)
|
16
|
+
json.progress_1 assessment.first_quarter_progress.to_f.round(2)
|
17
|
+
json.progress_2 assessment.second_quarter_progress.to_f.round(2)
|
18
|
+
json.progress_3 assessment.third_quarter_progress.to_f.round(2)
|
19
|
+
json.progress_4 assessment.fourth_quarter_progress.to_f.round(2)
|
20
|
+
|
21
|
+
diff_1 = (assessment.first_quarter.to_f - assessment.first_quarter_progress.to_f).round(2)
|
22
|
+
diff_2 = (assessment.second_quarter.to_f - assessment.second_quarter_progress.to_f).round(2)
|
23
|
+
diff_3 = (assessment.third_quarter.to_f - assessment.third_quarter_progress.to_f).round(2)
|
24
|
+
|
25
|
+
json.quarter_2_total diff_1 > 0 ? (diff_1 + assessment.second_quarter.to_f).round(2) : assessment.second_quarter.to_f.round(2)
|
26
|
+
json.quarter_3_total diff_2 > 0 ? (diff_2 + assessment.third_quarter.to_f).round(2) : assessment.third_quarter.to_f.round(2)
|
27
|
+
json.quarter_4_total diff_3 > 0 ? (diff_3 + assessment.fourth_quarter.to_f).round(2) : assessment.fourth_quarter.to_f.round(2)
|
28
|
+
|
29
|
+
# 完成率completion_rate
|
30
|
+
json.annual_rate completion_rate(assessment.annual, assessment.annual_progress)
|
31
|
+
json.rate_1 completion_rate(assessment.first_quarter, assessment.first_quarter_progress)
|
32
|
+
json.rate_2 completion_rate(assessment.second_quarter, assessment.second_quarter_progress)
|
33
|
+
json.rate_3 completion_rate(assessment.third_quarter, assessment.third_quarter_progress)
|
34
|
+
json.rate_4 completion_rate(assessment.fourth_quarter,assessment.fourth_quarter_progress)
|
35
|
+
|
36
|
+
# 得分_score
|
37
|
+
if assessment.assessment == 1
|
38
|
+
# json.assessment '签单金额'
|
39
|
+
json.annual_score signed_amount_score(assessment.annual, assessment.annual_progress)
|
40
|
+
json.score_1 signed_amount_score(assessment.first_quarter, assessment.first_quarter_progress)
|
41
|
+
json.score_2 signed_amount_score(assessment.second_quarter, assessment.second_quarter_progress)
|
42
|
+
json.score_3 signed_amount_score(assessment.third_quarter, assessment.third_quarter_progress)
|
43
|
+
json.score_4 signed_amount_score(assessment.fourth_quarter,assessment.fourth_quarter_progress)
|
44
|
+
elsif assessment.assessment == 2
|
45
|
+
# json.assessment '回款金额'
|
46
|
+
json.annual_score collection_amount_score(assessment.annual, assessment.annual_progress)
|
47
|
+
json.score_1 collection_amount_score(assessment.first_quarter, assessment.first_quarter_progress)
|
48
|
+
json.score_2 collection_amount_score(assessment.second_quarter, assessment.second_quarter_progress)
|
49
|
+
json.score_3 collection_amount_score(assessment.third_quarter, assessment.third_quarter_progress)
|
50
|
+
json.score_4 collection_amount_score(assessment.fourth_quarter,assessment.fourth_quarter_progress)
|
51
|
+
elsif assessment.assessment == 3
|
52
|
+
# json.assessment '拜访量'
|
53
|
+
json.annual_score visits_score(assessment.annual_progress)
|
54
|
+
json.score_1 visits_score(assessment.first_quarter_progress)
|
55
|
+
json.score_2 visits_score(assessment.second_quarter_progress)
|
56
|
+
json.score_3 visits_score(assessment.third_quarter_progress)
|
57
|
+
json.score_4 visits_score(assessment.fourth_quarter_progress)
|
58
|
+
else
|
59
|
+
# json.assessment '新增商机数'
|
60
|
+
json.annual_score add_businesses_score(assessment.staff_id,'01-01','12-31')
|
61
|
+
json.score_1 add_businesses_score(assessment.staff_id,'01-01','03-31')
|
62
|
+
# assessment_year如果时闰年或则平年时的判断----02-28 02-29
|
63
|
+
json.score_2 add_businesses_score(assessment.staff_id,'04-01','06-30')
|
64
|
+
json.score_3 add_businesses_score(assessment.staff_id,'07-01','09-30')
|
65
|
+
json.score_4 add_businesses_score(assessment.staff_id,'10-01','12-31')
|
66
|
+
end
|
67
|
+
json.assessment EducodeSales::AssessmentsSetting::CLAZZ[assessment.assessment]
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
json.code 0
|
73
|
+
json.count @assessments.count
|
74
|
+
|
75
|
+
|
76
|
+
#
|
77
|
+
#
|
78
|
+
#
|
79
|
+
#
|
80
|
+
#
|
81
|
+
#
|
82
|
+
#
|
83
|
+
#
|
84
|
+
#
|
85
|
+
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<div class="layui-tab-content">
|
12
12
|
<%if can?(:show_result, EducodeSales::AssessmentsSetting) %>
|
13
13
|
<div class="layui-tab-item layui-show">
|
14
|
-
<%= render '
|
14
|
+
<%= render 'finished' %>
|
15
15
|
</div>
|
16
16
|
<!-- else 语句没有执行(可能是写法错了 先解决问题 以后在重写)-->
|
17
17
|
<%# else %>
|
@@ -42,31 +42,31 @@
|
|
42
42
|
element = layui.element;
|
43
43
|
|
44
44
|
element.on('tab(sale_tab)', function (data) {
|
45
|
-
var status = $(this).attr('data')
|
46
|
-
switch (status) {
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
}
|
45
|
+
// var status = $(this).attr('data')
|
46
|
+
// switch (status) {
|
47
|
+
// case 'progress':
|
48
|
+
// $("#progress_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
|
49
|
+
// $("#progress_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
|
50
|
+
// break;
|
51
|
+
// case 'setup':
|
52
|
+
// $("#setup_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
|
53
|
+
// $("#setup_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
|
54
|
+
// break;
|
55
|
+
// }
|
56
56
|
});
|
57
57
|
|
58
58
|
// 重置按钮写在index下无效!!!
|
59
59
|
// 监控重置
|
60
|
-
form.on('submit(reset_assessments_search)', function (data) {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
});
|
60
|
+
// form.on('submit(reset_assessments_search)', function (data) {
|
61
|
+
// var field = data.field;
|
62
|
+
// console.log("index");
|
63
|
+
// form.val('search_assessments_form', {
|
64
|
+
// assessment_year: '2022',
|
65
|
+
// assessment_id: "签单金额",
|
66
|
+
// staff_id: ''
|
67
|
+
// });
|
68
|
+
// return false;
|
69
|
+
// });
|
70
70
|
})
|
71
71
|
</script>
|
72
72
|
|
@@ -2,7 +2,10 @@ json.data do
|
|
2
2
|
json.array! @assessments do |d|
|
3
3
|
json.id d.id
|
4
4
|
json.username d.staff_id.present? ? d.staff.user.real_name : ""
|
5
|
+
json.year @year
|
6
|
+
json.assessment EducodeSales::AssessmentsSetting::CLAZZ[d.assessment]
|
5
7
|
json.annual d.annual.to_f.round(2)
|
8
|
+
json.annual_lower (d.annual.to_f * 0.8).round(2)
|
6
9
|
json.first_quarter d.first_quarter.to_f.round(2)
|
7
10
|
json.january d.january.to_f.round(2)
|
8
11
|
json.february d.february.to_f.round(2)
|
@@ -7,11 +7,12 @@
|
|
7
7
|
<label class="layui-form-label required ">考核指标</label>
|
8
8
|
<div class="layui-input-inline">
|
9
9
|
<select name="assessment" lay-verify="required" lay-filter="new_assessment_id" >
|
10
|
-
|
10
|
+
<%= options_for_select EducodeSales::AssessmentsSetting::CLAZZ.invert.to_a %>
|
11
|
+
<!-- <option value="0" selected ></option>
|
11
12
|
<option value="1">签单金额</option>
|
12
13
|
<option value="2">回款金额</option>
|
13
14
|
<option value="3">拜访量</option>
|
14
|
-
<option value="4">新增商机数</option>
|
15
|
+
<option value="4">新增商机数</option> -->
|
15
16
|
</select>
|
16
17
|
</div>
|
17
18
|
</div>
|
@@ -47,8 +47,8 @@
|
|
47
47
|
}
|
48
48
|
}
|
49
49
|
});
|
50
|
-
|
51
|
-
|
50
|
+
|
51
|
+
|
52
52
|
form.render();
|
53
53
|
|
54
54
|
function renderTable(chart_data) {
|
@@ -62,6 +62,9 @@
|
|
62
62
|
})
|
63
63
|
var table_data = [];
|
64
64
|
chart_data.datasets.forEach(function(d, i) {
|
65
|
+
if (d.hidden == true) {
|
66
|
+
return false;
|
67
|
+
}
|
65
68
|
var value = {}
|
66
69
|
value['col0'] = d.label;
|
67
70
|
d.data.forEach(function(v, i1) {
|
@@ -71,10 +74,10 @@
|
|
71
74
|
})
|
72
75
|
table.render({
|
73
76
|
elem: '#followup_table',
|
74
|
-
height:
|
77
|
+
height: 600,
|
75
78
|
url: '',
|
76
|
-
limit:
|
77
|
-
page:
|
79
|
+
limit: 1000,
|
80
|
+
page: false,
|
78
81
|
data: table_data,
|
79
82
|
cols: [fields]
|
80
83
|
});
|
@@ -86,7 +89,7 @@
|
|
86
89
|
range: true
|
87
90
|
});
|
88
91
|
|
89
|
-
|
92
|
+
|
90
93
|
laydate.render({
|
91
94
|
elem: '#date_week',
|
92
95
|
range: true
|
data/config/routes.rb
CHANGED
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.9.
|
4
|
+
version: 0.9.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -225,9 +225,11 @@ files:
|
|
225
225
|
- app/views/educode_sales/activities/index.json.jbuilder
|
226
226
|
- app/views/educode_sales/activities/new.html.erb
|
227
227
|
- app/views/educode_sales/activities/show_teachers.html.erb
|
228
|
+
- app/views/educode_sales/assessments/_finished.html.erb
|
228
229
|
- app/views/educode_sales/assessments/_progress.html.erb
|
229
230
|
- app/views/educode_sales/assessments/_setup.html.erb
|
230
231
|
- app/views/educode_sales/assessments/edit.html.erb
|
232
|
+
- app/views/educode_sales/assessments/finished.json.jbuilder
|
231
233
|
- app/views/educode_sales/assessments/get_export_data.json.jbuilder
|
232
234
|
- app/views/educode_sales/assessments/index.html.erb
|
233
235
|
- app/views/educode_sales/assessments/index.json.jbuilder
|