educode_sales 0.5.2 → 0.5.6
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/businesses_controller.rb +3 -0
- data/app/controllers/educode_sales/follow_ups_controller.rb +57 -0
- data/app/controllers/educode_sales/home_controller.rb +11 -0
- data/app/controllers/educode_sales/sale_trends_controller.rb +108 -84
- data/app/controllers/educode_sales/teachers_controller.rb +35 -14
- data/app/controllers/educode_sales/upload_files_controller.rb +29 -29
- data/app/models/educode_sales/teacher.rb +2 -1
- data/app/models/educode_sales/teacher_assign_follow.rb +6 -0
- data/app/views/educode_sales/activities/index.html.erb +4 -5
- data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
- data/app/views/educode_sales/businesses/_follows.html.erb +233 -0
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +51 -7
- data/app/views/educode_sales/businesses/file.html.erb +2 -4
- data/app/views/educode_sales/businesses/index.html.erb +137 -62
- data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +50 -5
- data/app/views/educode_sales/businesses/show_follow.html.erb +4 -4
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +1 -1
- data/app/views/educode_sales/businesses/time_line.html.erb +1 -1
- data/app/views/educode_sales/follow_ups/index.json.jbuilder +19 -0
- data/app/views/educode_sales/home/sales_place.json.jbuilder +9 -0
- data/app/views/educode_sales/places/index.html.erb +14 -4
- data/app/views/educode_sales/places/index.json.jbuilder +7 -1
- data/app/views/educode_sales/recycles/index.html.erb +1 -1
- data/app/views/educode_sales/sale_trends/trends.html.erb +89 -29
- data/app/views/educode_sales/sales/index.html.erb +7 -7
- data/app/views/educode_sales/sales/operations.html.erb +2 -0
- data/app/views/educode_sales/teachers/course_list.json.jbuilder +1 -1
- data/app/views/educode_sales/teachers/edit.html.erb +53 -7
- data/app/views/educode_sales/teachers/index.html.erb +35 -1
- data/app/views/educode_sales/teachers/index.json.jbuilder +4 -1
- data/app/views/educode_sales/teachers/new.html.erb +55 -17
- data/app/views/educode_sales/upload_files/index.json.jbuilder +1 -1
- data/config/routes.rb +1 -0
- data/db/migrate/20211201023750_create_educode_sales_teacher_assign_follows.rb +11 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +7 -2
@@ -85,12 +85,12 @@
|
|
85
85
|
<br>
|
86
86
|
<div class="layui-inline">
|
87
87
|
<label class="layui-form-label">渠道</label>
|
88
|
-
<div class="layui-input-inline">
|
89
|
-
|
88
|
+
<div class="layui-input-inline" style="z-index: 101">
|
89
|
+
<div id="place" style="width: 190px;"></div>
|
90
90
|
</div>
|
91
91
|
</div>
|
92
92
|
<div class="layui-inline">
|
93
|
-
<label class="layui-form-label"
|
93
|
+
<label class="layui-form-label">渠道分成(万)</label>
|
94
94
|
<div class="layui-input-inline">
|
95
95
|
<input name="divide_amount" class="layui-input" value="<%= @last_follow_up&.divide_amount%>">
|
96
96
|
</div>
|
@@ -182,18 +182,63 @@
|
|
182
182
|
})
|
183
183
|
}
|
184
184
|
})
|
185
|
+
var place_list = xmSelect.render({
|
186
|
+
el: '#place',
|
187
|
+
remoteSearch: true,
|
188
|
+
model: {
|
189
|
+
icon: 'hidden',
|
190
|
+
label: {
|
191
|
+
type: 'text',
|
192
|
+
text: {
|
193
|
+
//左边拼接的字符
|
194
|
+
left: '',
|
195
|
+
//右边拼接的字符
|
196
|
+
right: '',
|
197
|
+
//中间的分隔符
|
198
|
+
separator: ', ',
|
199
|
+
},
|
200
|
+
}
|
201
|
+
},
|
202
|
+
clickClose: true,
|
203
|
+
delay: 1000,
|
204
|
+
paging: true,
|
205
|
+
radio: true,
|
206
|
+
pageRemote: true,
|
207
|
+
filterable: true,
|
208
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
209
|
+
$.ajax( '/missions/sales_place', {
|
210
|
+
method: 'get',
|
211
|
+
data: {
|
212
|
+
q: val,
|
213
|
+
page: pageIndex
|
214
|
+
},
|
215
|
+
dataType: 'json',
|
216
|
+
success: function (res) {
|
217
|
+
var data = res.data;
|
218
|
+
if (res.code == 0) {
|
219
|
+
cb(res.data, res.count);
|
220
|
+
} else {
|
221
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
222
|
+
}
|
223
|
+
|
224
|
+
}
|
225
|
+
})
|
226
|
+
}
|
227
|
+
})
|
185
228
|
|
186
229
|
sales_list.setValue(gon.sales);
|
230
|
+
place_list.setValue(gon.place);
|
187
231
|
form.render();
|
188
232
|
|
189
233
|
form.on('submit(add_follow_up)', function (data) {
|
190
|
-
|
234
|
+
var assign_follow = [];
|
191
235
|
sales_list.getValue().forEach(function(d) {
|
192
236
|
assign_follow.push(d.value);
|
193
237
|
})
|
194
238
|
data.field.assign_follow_up = assign_follow;
|
195
239
|
data.field.business_id = "<%= @business.id %>";
|
196
|
-
|
240
|
+
data.field.place_id = place_list.getValue('valueStr');
|
241
|
+
request.authPost("missions/follow_ups", data.field, function (res) {
|
197
242
|
if (res.success == false) {
|
198
243
|
layer.alert(res.msg)
|
199
244
|
} else {
|
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
table.render({
|
76
76
|
elem: '#sale_plan_follow_table',
|
77
|
-
url: '/missions/businesses/show_follow?id=' + parent.
|
77
|
+
url: '/missions/businesses/show_follow?id=' + parent.business_id ,
|
78
78
|
toolbar: '#toolbarDemo_follow',
|
79
79
|
defaultToolbar: ['filter'],
|
80
80
|
cols: [
|
@@ -198,7 +198,7 @@
|
|
198
198
|
table.on('toolbar(sale_plan_follow_table)', function (obj) {
|
199
199
|
if (obj.event === 'add') { // 监听添加操作
|
200
200
|
business_id = parent.business_id
|
201
|
-
var content = miniPage.getHrefContent('/missions/businesses/new_follow_record?id=' + parent.
|
201
|
+
var content = miniPage.getHrefContent('/missions/businesses/new_follow_record?id=' + parent.business_id);
|
202
202
|
var openWH = miniPage.getOpenWidthHeight();
|
203
203
|
sale_plan_index = layer.open({
|
204
204
|
title: '添加商机跟进记录',
|
@@ -220,7 +220,7 @@
|
|
220
220
|
layer.closeAll()
|
221
221
|
business_id = parent.business_id
|
222
222
|
business_name = parent.business_name
|
223
|
-
var content = miniPage.getHrefContent('/missions/businesses/time_line?business_id=' +
|
223
|
+
var content = miniPage.getHrefContent('/missions/businesses/time_line?business_id=' + parent.business_id);
|
224
224
|
var openWH = miniPage.getOpenWidthHeight();
|
225
225
|
sindex = layer.open({
|
226
226
|
title: '商机列表/'+ parent.business_name +'的跟进时间线',
|
@@ -335,7 +335,7 @@
|
|
335
335
|
// 未完成计划
|
336
336
|
table.render({
|
337
337
|
elem: '#unfinish_table',
|
338
|
-
url: '/missions/businesses/' + parent.
|
338
|
+
url: '/missions/businesses/' + parent.business_id + "/unfinish_plans",
|
339
339
|
toolbar: '#unfinish_table_tabar',
|
340
340
|
defaultToolbar: [],
|
341
341
|
cols: [
|
@@ -43,7 +43,7 @@
|
|
43
43
|
function demo(){
|
44
44
|
layer.closeAll()
|
45
45
|
business_id = parent.business_id
|
46
|
-
var content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' +
|
46
|
+
var content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + parent.business_id);
|
47
47
|
var openWH = miniPage.getOpenWidthHeight();
|
48
48
|
sindex = layer.open({
|
49
49
|
title: '商机列表/'+ parent.business_name +'的跟进记录',
|
@@ -0,0 +1,19 @@
|
|
1
|
+
json.data do
|
2
|
+
json.array! @follow_ups do |d|
|
3
|
+
json.id d.id
|
4
|
+
json.clazz d.clazz.name
|
5
|
+
json.stage d.stage.name
|
6
|
+
json.staff d.staff.user.real_name
|
7
|
+
json.description d.description
|
8
|
+
json.advise d.advise
|
9
|
+
json.created_at d.created_at.to_s
|
10
|
+
json.business d.business.name
|
11
|
+
json.business_id d.business.id
|
12
|
+
teacher_ids = d.key_person.pluck(:teacher_id)
|
13
|
+
json.key_people EducodeSales::Teacher.where(id: teacher_ids).pluck(:name).join('、')
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
json.code 0
|
19
|
+
json.count @follow_ups.total_count
|
@@ -17,6 +17,11 @@
|
|
17
17
|
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
18
18
|
<% end %>
|
19
19
|
</script>
|
20
|
+
<script type="text/html" id="business_a">
|
21
|
+
<div class="layui-text">
|
22
|
+
<a href="/missions/businesses?place_id={{d.id}}">{{d.businesses_count}}</a>
|
23
|
+
</div>
|
24
|
+
</script>
|
20
25
|
|
21
26
|
<script type="text/html" id="showchance">
|
22
27
|
<a href="/missions/businesses" class="layui-table-link">{{ d.chance }}</a>
|
@@ -56,20 +61,25 @@
|
|
56
61
|
{
|
57
62
|
field: 'businesses_count',
|
58
63
|
width: 120,
|
59
|
-
totalRow:
|
60
|
-
|
64
|
+
totalRow: true,
|
65
|
+
sort: true,
|
66
|
+
title: '商机',
|
67
|
+
templet: "#business_a",
|
68
|
+
|
61
69
|
},
|
62
70
|
{
|
63
71
|
field: 'amount',
|
64
72
|
width: 120,
|
65
73
|
totalRow:true,
|
66
|
-
|
74
|
+
sort: true,
|
75
|
+
title: '中标金额'
|
67
76
|
},
|
68
77
|
{
|
69
78
|
field: 'return_mount',
|
70
79
|
width: 120,
|
71
80
|
totalRow:true,
|
72
|
-
|
81
|
+
sort: true,
|
82
|
+
title: '回款金额',
|
73
83
|
},
|
74
84
|
{
|
75
85
|
title: '操作',
|
@@ -1,3 +1,4 @@
|
|
1
|
+
all_businesses_count = 0
|
1
2
|
area_ids = EducodeSales::Common.where(clazz: 'area').ids.sort.to_s
|
2
3
|
json.data do
|
3
4
|
json.array! @places do |d|
|
@@ -13,11 +14,16 @@ json.data do
|
|
13
14
|
else
|
14
15
|
json.area_id ''
|
15
16
|
end
|
16
|
-
|
17
|
+
business_count = EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", @x).where("educode_sales_follow_ups.place_id = #{d.id}").count
|
18
|
+
json.businesses_count business_count
|
19
|
+
all_businesses_count += business_count
|
17
20
|
json.amount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", @x).where("educode_sales_follow_ups.place_id = #{d.id} AND educode_sales_follow_ups.stage_id IN (?)", @stage_ids).sum(:profit_amount).round(2)
|
18
21
|
json.return_mount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", @x).where("educode_sales_follow_ups.place_id = #{d.id}").sum(:return_money).round(2)
|
19
22
|
end
|
20
23
|
end
|
21
24
|
|
25
|
+
json.totalRow do
|
26
|
+
json.businesses_count all_businesses_count.to_s
|
27
|
+
end
|
22
28
|
json.code 0
|
23
29
|
json.count @places.total_count
|
@@ -101,7 +101,7 @@
|
|
101
101
|
<div class="panel layui-bg-number">
|
102
102
|
<div class="panel-body">
|
103
103
|
<div class="panel-title">
|
104
|
-
<h5
|
104
|
+
<h5>已中标(总额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已中标商机)" style="color: #0000FF;float: right">查看商机</a></h5>
|
105
105
|
</div>
|
106
106
|
<div class="panel-content y-t-10">
|
107
107
|
<h1 class="no-margins"><%= @goal_amount %>万</h1>
|
@@ -114,7 +114,7 @@
|
|
114
114
|
<div class="panel layui-bg-number">
|
115
115
|
<div class="panel-body">
|
116
116
|
<div class="panel-title">
|
117
|
-
<h5
|
117
|
+
<h5>已签单(总额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已签单商机)" style="color: #0000FF;float: right">查看商机</a></h5>
|
118
118
|
</div>
|
119
119
|
<div class="panel-content y-t-10">
|
120
120
|
<h1 class="no-margins"><%= @service_amount %>万</h1>
|
@@ -148,6 +148,32 @@
|
|
148
148
|
</div>
|
149
149
|
</div>
|
150
150
|
</div>
|
151
|
+
<div class="layui-col-xs3">
|
152
|
+
<div class="panel layui-bg-number">
|
153
|
+
<div class="panel-body">
|
154
|
+
<div class="panel-title">
|
155
|
+
<h5>已中标(合同额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已中标商机)" style="color: #0000FF;float: right">查看商机</a></h5>
|
156
|
+
</div>
|
157
|
+
<div class="panel-content y-t-10">
|
158
|
+
<h1 class="no-margins"><%= @actual_goal_amount %>万</h1>
|
159
|
+
</div>
|
160
|
+
</div>
|
161
|
+
</div>
|
162
|
+
</div>
|
163
|
+
|
164
|
+
<div class="layui-col-xs3">
|
165
|
+
<div class="panel layui-bg-number">
|
166
|
+
<div class="panel-body">
|
167
|
+
<div class="panel-title">
|
168
|
+
<h5>已签单(合同额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已签单商机)" style="color: #0000FF;float: right">查看商机</a></h5>
|
169
|
+
</div>
|
170
|
+
<div class="panel-content y-t-10">
|
171
|
+
<h1 class="no-margins"><%= @actual_service_amount %>万</h1>
|
172
|
+
</div>
|
173
|
+
</div>
|
174
|
+
</div>
|
175
|
+
</div>
|
176
|
+
|
151
177
|
<div class="layui-row layui-col-space30" >
|
152
178
|
<div class="layui-col-xs3">
|
153
179
|
<div class="panel layui-bg-number">
|
@@ -181,7 +207,7 @@
|
|
181
207
|
<div class="layui-inline m-t-10">
|
182
208
|
<label class="layui-form-label">视图</label>
|
183
209
|
<div class="layui-input-inline">
|
184
|
-
<%= select_tag "follow_count_range", options_for_select([['按天','day'],['按月','month'],['按年','year']],params[:follow_count_range]), {'lay-filter': 'follow_count'}%>
|
210
|
+
<%= select_tag "follow_count_range", options_for_select([['按天','day'],['按周','week'],['按月','month'],['按年','year']],params[:follow_count_range] || 'week'), {'lay-filter': 'follow_count'}%>
|
185
211
|
</div>
|
186
212
|
</div>
|
187
213
|
<div class="layui-inline">
|
@@ -189,7 +215,8 @@
|
|
189
215
|
<div class="layui-input-inline">
|
190
216
|
<input type="text" class="layui-input month layui-hide" id="date_month" name="date_month" placeholder=" - " value="<%=params[:date_month] %>" >
|
191
217
|
<input type="text" class="layui-input year layui-hide" id="date_year" name="date_year" placeholder=" - " value="<%=params[:date_year] %>">
|
192
|
-
<input type="text" class="layui-input
|
218
|
+
<input type="text" class="layui-input week " id="date_week" name="date_week" placeholder=" - " value="<%=params[:date_week].present? ? params[:date_week] : (Time.now - 30.days).beginning_of_week.to_s(:date) + ' - ' + Time.now.end_of_week.to_s(:date) %>">
|
219
|
+
<input type="text" class="layui-input day layui-hide" id="date" name="date" placeholder=" - " value="<%=params[:date] %>">
|
193
220
|
</div>
|
194
221
|
</div>
|
195
222
|
<div class="layui-inline">
|
@@ -203,6 +230,8 @@
|
|
203
230
|
</div>
|
204
231
|
</div>
|
205
232
|
</div>
|
233
|
+
<br>
|
234
|
+
<br>
|
206
235
|
<div class="layui-tab layui-tab-card " id="销售额分析" lay-filter="test1">
|
207
236
|
<ul class="layui-tab-title">
|
208
237
|
<li class="layui-this">销售额分析</li>
|
@@ -212,6 +241,12 @@
|
|
212
241
|
<div style="margin: 10px 10px 10px 10px">
|
213
242
|
<form class="layui-form layui-form-pane" lay-filter="search_form">
|
214
243
|
<div class="layui-form-item">
|
244
|
+
<div class="layui-inline m-t-10">
|
245
|
+
<label class="layui-form-label">维度</label>
|
246
|
+
<div class="layui-input-inline">
|
247
|
+
<%= select_tag "count_type", options_for_select([['按合同额统计','actual_amount'],['按总额统计','total_amount']],params[:count_type]), {'lay-filter': 'count_type'}%>
|
248
|
+
</div>
|
249
|
+
</div>
|
215
250
|
<div class="layui-inline m-t-10">
|
216
251
|
<label class="layui-form-label">视图</label>
|
217
252
|
<div class="layui-input-inline">
|
@@ -221,7 +256,7 @@
|
|
221
256
|
<div class="layui-inline">
|
222
257
|
<label class="layui-form-label">时间范围</label>
|
223
258
|
<div class="layui-input-inline">
|
224
|
-
<input type="text" class="layui-input goal_month " id="goal_date_month" name="goal_date_month" placeholder=" - " value="<%=params[:goal_date_month] %>">
|
259
|
+
<input type="text" class="layui-input goal_month " id="goal_date_month" name="goal_date_month" placeholder=" - " value="<%=params[:goal_date_month].present? ? params[:goal_date_month] : Time.now.year.to_s + "-01" + " - " + Time.now.strftime("%Y-%m") %>">
|
225
260
|
<input type="text" class="layui-input goal_year layui-hide" id="goal_date_year" name="goal_date_year" placeholder=" - " value="<%=params[:goal_date_year] %>">
|
226
261
|
</div>
|
227
262
|
</div>
|
@@ -262,27 +297,34 @@
|
|
262
297
|
$(document).ready(function () {
|
263
298
|
$(".follow_count_bt").click(function () {
|
264
299
|
layer.msg("图表绘制中...", {
|
265
|
-
time: 0, //不自动关闭
|
266
300
|
offset:['40%','46%']
|
267
301
|
})
|
268
302
|
layer.load(0, {});
|
269
303
|
setTimeout(function () {
|
270
304
|
layer.closeAll('loading');
|
271
|
-
},
|
305
|
+
}, 3000);
|
272
306
|
});
|
273
307
|
});
|
274
308
|
if(follow_type == "day"){
|
275
309
|
$(".year").addClass('layui-hide')
|
276
310
|
$(".month").addClass('layui-hide')
|
311
|
+
$(".week").addClass('layui-hide')
|
277
312
|
$(".day").removeClass('layui-hide')
|
278
313
|
}else if(follow_type == "month"){
|
279
314
|
$(".year").addClass('layui-hide')
|
315
|
+
$(".week").addClass('layui-hide')
|
280
316
|
$(".month").removeClass('layui-hide')
|
281
317
|
$(".day").addClass('layui-hide')
|
318
|
+
}else if(follow_type == "week"){
|
319
|
+
$(".year").addClass('layui-hide')
|
320
|
+
$(".day").addClass('layui-hide')
|
321
|
+
$(".week").removeClass('layui-hide')
|
322
|
+
$(".month").addClass('layui-hide')
|
282
323
|
}else {
|
283
324
|
$(".year").removeClass('layui-hide')
|
284
325
|
$(".month").addClass('layui-hide')
|
285
326
|
$(".day").addClass('layui-hide')
|
327
|
+
$(".week").addClass('layui-hide')
|
286
328
|
}
|
287
329
|
|
288
330
|
if(goal_type == "year"){
|
@@ -326,43 +368,30 @@
|
|
326
368
|
// 时间选择器
|
327
369
|
laydate.render({
|
328
370
|
elem: '#date',
|
329
|
-
min: -15
|
330
|
-
,max: 15,
|
331
371
|
range: true
|
332
372
|
});
|
333
373
|
laydate.render({
|
334
|
-
type: 'week',
|
335
374
|
elem: '#date_week',
|
336
|
-
min: -90
|
337
|
-
,max: 0,
|
338
375
|
range: true
|
339
376
|
});
|
340
377
|
laydate.render({
|
341
378
|
type: 'month',
|
342
379
|
elem: '#date_month',
|
343
|
-
min: -365
|
344
|
-
,max: 0,
|
345
380
|
range: true
|
346
381
|
});
|
347
382
|
laydate.render({
|
348
383
|
type: 'year',
|
349
384
|
elem: '#date_year',
|
350
|
-
min: -3660
|
351
|
-
,max: 366,
|
352
385
|
range: true
|
353
386
|
});
|
354
387
|
laydate.render({
|
355
388
|
type: 'year',
|
356
389
|
elem: '#goal_date_year',
|
357
|
-
min: -3660
|
358
|
-
,max: 366,
|
359
390
|
range: true
|
360
391
|
});
|
361
392
|
laydate.render({
|
362
393
|
type: 'month',
|
363
394
|
elem: '#goal_date_month',
|
364
|
-
min: -365
|
365
|
-
,max: 0,
|
366
395
|
range: true
|
367
396
|
});
|
368
397
|
|
@@ -378,15 +407,24 @@
|
|
378
407
|
if(value == "month"){
|
379
408
|
$(".year").addClass('layui-hide')
|
380
409
|
$(".day").addClass('layui-hide')
|
410
|
+
$(".week").addClass('layui-hide')
|
381
411
|
$(".month").removeClass('layui-hide')
|
382
412
|
}else if(value == "year"){
|
383
413
|
$(".month").addClass('layui-hide')
|
384
414
|
$(".day").addClass('layui-hide')
|
415
|
+
$(".week").addClass('layui-hide')
|
385
416
|
$(".year").removeClass('layui-hide')
|
417
|
+
}else if(value == "week"){
|
418
|
+
$(".month").addClass('layui-hide')
|
419
|
+
$(".day").addClass('layui-hide')
|
420
|
+
$(".week").removeClass('layui-hide')
|
421
|
+
$(".year").addClass('layui-hide')
|
386
422
|
}else {
|
387
423
|
$(".month").addClass('layui-hide')
|
388
424
|
$(".year").addClass('layui-hide')
|
389
425
|
$(".day").removeClass('layui-hide')
|
426
|
+
$(".week").addClass('layui-hide')
|
427
|
+
|
390
428
|
}
|
391
429
|
})
|
392
430
|
|
@@ -424,19 +462,41 @@
|
|
424
462
|
}
|
425
463
|
});
|
426
464
|
|
465
|
+
|
466
|
+
var opt = {
|
467
|
+
events: false,
|
468
|
+
tooltips: {
|
469
|
+
enabled: false
|
470
|
+
},
|
471
|
+
hover: {
|
472
|
+
animationDuration: 0
|
473
|
+
},
|
474
|
+
animation: {
|
475
|
+
duration: 1,
|
476
|
+
onComplete: function () {
|
477
|
+
var chartInstance = this.chart,
|
478
|
+
ctx = chartInstance.ctx;
|
479
|
+
ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
|
480
|
+
ctx.textAlign = 'center';
|
481
|
+
ctx.textBaseline = 'bottom';
|
482
|
+
|
483
|
+
this.data.datasets.forEach(function (dataset, i) {
|
484
|
+
var meta = chartInstance.controller.getDatasetMeta(i);
|
485
|
+
meta.data.forEach(function (bar, index) {
|
486
|
+
var data = dataset.data[index];
|
487
|
+
ctx.fillText(data, bar._model.x, bar._model.y - 5);
|
488
|
+
});
|
489
|
+
});
|
490
|
+
}
|
491
|
+
}
|
492
|
+
};
|
493
|
+
|
494
|
+
|
427
495
|
var ctx = document.getElementById('myChart2');
|
428
496
|
var myChart2 = new Chart(ctx, {
|
429
497
|
type: 'bar',
|
430
498
|
data: <%=raw @goal_count_data.to_json %>,
|
431
|
-
options:
|
432
|
-
scales: {
|
433
|
-
yAxes: [{
|
434
|
-
ticks: {
|
435
|
-
beginAtZero:true
|
436
|
-
}
|
437
|
-
}]
|
438
|
-
}
|
439
|
-
}
|
499
|
+
options: opt
|
440
500
|
});
|
441
501
|
})
|
442
502
|
</script>
|
@@ -66,42 +66,42 @@
|
|
66
66
|
templet: "#business_a",
|
67
67
|
totalRow:true,
|
68
68
|
sort:true,
|
69
|
-
width:
|
69
|
+
width: 100
|
70
70
|
},
|
71
71
|
{
|
72
72
|
field: 'business_b',
|
73
73
|
title: 'B类商机',
|
74
74
|
templet: "#business_b",
|
75
75
|
totalRow:true,sort:true,
|
76
|
-
width:
|
76
|
+
width: 100
|
77
77
|
},
|
78
78
|
{
|
79
79
|
field: 'business_c',
|
80
80
|
title: 'C类商机',
|
81
81
|
templet: "#business_c",
|
82
82
|
totalRow:true,sort:true,
|
83
|
-
width:
|
83
|
+
width: 100
|
84
84
|
},
|
85
85
|
{
|
86
86
|
field: 'business_d',
|
87
87
|
title: 'D类商机',
|
88
88
|
templet: "#business_d",
|
89
89
|
totalRow:true,sort:true,
|
90
|
-
width:
|
90
|
+
width: 100
|
91
91
|
},
|
92
92
|
{
|
93
93
|
field: 'business_e',
|
94
94
|
title: 'E类商机',
|
95
95
|
templet: "#business_e",
|
96
96
|
totalRow:true,sort:true,
|
97
|
-
width:
|
97
|
+
width: 100
|
98
98
|
},
|
99
99
|
{
|
100
100
|
field: 'business_o',
|
101
101
|
title: 'O类商机',
|
102
102
|
templet: "#business_o",
|
103
103
|
totalRow:true,sort:true,
|
104
|
-
width:
|
104
|
+
width: 100
|
105
105
|
},
|
106
106
|
{
|
107
107
|
field: 'goal',
|
@@ -110,7 +110,7 @@
|
|
110
110
|
width: 120
|
111
111
|
}, {
|
112
112
|
field: 'return_money',
|
113
|
-
title: '
|
113
|
+
title: '回款金额',
|
114
114
|
totalRow:true,sort:true,
|
115
115
|
width: 120
|
116
116
|
}
|