educode_sales 0.9.18 → 0.9.20
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 +14 -5
- data/app/controllers/educode_sales/follow_ups_controller.rb +2 -2
- data/app/controllers/educode_sales/sale_trends_controller.rb +30 -5
- data/app/views/educode_sales/businesses/daily_paper.html.erb +24 -7
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +19 -3
- data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +4 -0
- data/app/views/educode_sales/businesses/index.html.erb +15 -1
- data/app/views/educode_sales/businesses/index.json.jbuilder +3 -1
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +19 -3
- data/app/views/educode_sales/businesses/show_follow.html.erb +3 -3
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +8 -2
- data/app/views/educode_sales/sale_trends/_business_area.html.erb +8 -2
- data/app/views/educode_sales/sale_trends/_sales_analysis.html.erb +10 -2
- data/db/migrate/20221107122147_change_divide_rate_follow_ups.rb +15 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +7 -7
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 482f37ccd129a5ea2fab08879a380aeed531a2026aac73a42528e6ee653a9aae
|
4
|
+
data.tar.gz: 27893e5d818e5bf26ec582dfed97bc1793f822fb818a5c2ec7311dea47439e13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a416d26f945870f4c40587ec1fd0f89d3c661f671d5162b4643f79bdd9bc4d23d05025b07604dbc459f05e2df660f1f1898cd1c4cf6101da472586a27b265f3
|
7
|
+
data.tar.gz: d45d9f2fd66387be4c58a46e072b21a80ec9b1285283a77f0cb9dbe11eb7b034ff503dae8fa01dc89422977b47315df4916c96d78f4d06224a64527eb0953bb7
|
@@ -230,7 +230,7 @@ module EducodeSales
|
|
230
230
|
@businesses = @businesses.where("number like :data", data: "%#{params[:q][:number].strip}%")
|
231
231
|
end
|
232
232
|
|
233
|
-
if params[:q][:clazz].present?
|
233
|
+
if params[:q].present? && params[:q][:clazz].present?
|
234
234
|
# 我的关注
|
235
235
|
if params[:q][:clazz] == 'followes'
|
236
236
|
my_ids = BusinessRelationShip.where(user_id:@current_admin.user_id).pluck(:business_id)
|
@@ -256,6 +256,7 @@ module EducodeSales
|
|
256
256
|
@businesses = @businesses.select("
|
257
257
|
educode_sales_businesses.*,
|
258
258
|
last_follow.invitation_at,
|
259
|
+
last_follow.budget_amount,
|
259
260
|
last_follow.service_time_long,
|
260
261
|
last_follow.service_end_time,
|
261
262
|
last_follow.service_start_time,
|
@@ -265,6 +266,9 @@ module EducodeSales
|
|
265
266
|
last_follow.year,
|
266
267
|
last_follow.created_at as latest_time,
|
267
268
|
last_follow.actual_amount,
|
269
|
+
last_follow.divide_rate,
|
270
|
+
last_follow.divide_amount,
|
271
|
+
(last_follow.total_amount - last_follow.actual_amount) as divide_money,
|
268
272
|
(last_follow.actual_amount - educode_sales_businesses.return_money) as wait_return_money,
|
269
273
|
last_follow.total_amount
|
270
274
|
").joins("
|
@@ -282,12 +286,12 @@ module EducodeSales
|
|
282
286
|
business = EducodeSales::FollowUp.joins("
|
283
287
|
JOIN educode_sales_businesses ON educode_sales_businesses.id = educode_sales_follow_ups.business_id
|
284
288
|
JOIN educode_sales_follow_ups AS last_up ON last_up.id = educode_sales_businesses.last_follow_up_id
|
285
|
-
").where("educode_sales_businesses.staff_id = ? AND educode_sales_follow_ups.staff_id = ? AND last_up.clazz_id IN (?)", @current_admin.id, @current_admin.id, ab)
|
289
|
+
").where("educode_sales_businesses.staff_id = ? AND educode_sales_follow_ups.staff_id = ? AND last_up.clazz_id IN (?) AND last_up.staff_id = #{@current_admin.id}", @current_admin.id, @current_admin.id, ab)
|
286
290
|
|
287
291
|
|
288
|
-
@month = business.where("educode_sales_follow_ups.created_at >= ?", Time.now.beginning_of_month).
|
289
|
-
@quarter = business.where("educode_sales_follow_ups.created_at >= ?", Time.now.beginning_of_quarter).
|
290
|
-
@year = business.where("educode_sales_follow_ups.created_at >= ?", Time.now.beginning_of_year).
|
292
|
+
@month = business.where("educode_sales_follow_ups.created_at >= ?", Time.now.beginning_of_month).count("DISTINCT(educode_sales_follow_ups.business_id)")
|
293
|
+
@quarter = business.where("educode_sales_follow_ups.created_at >= ?", Time.now.beginning_of_quarter).count("DISTINCT(educode_sales_follow_ups.business_id)")
|
294
|
+
@year = business.where("educode_sales_follow_ups.created_at >= ?", Time.now.beginning_of_year).count("DISTINCT(educode_sales_follow_ups.business_id)")
|
291
295
|
|
292
296
|
render layout: false
|
293
297
|
end
|
@@ -649,6 +653,7 @@ module EducodeSales
|
|
649
653
|
@businesses = @businesses.select("
|
650
654
|
educode_sales_businesses.*,
|
651
655
|
last_follow.invitation_at,
|
656
|
+
last_follow.budget_amount,
|
652
657
|
last_follow.reception_at,
|
653
658
|
last_follow.service_time_long,
|
654
659
|
last_follow.service_end_time,
|
@@ -657,6 +662,9 @@ module EducodeSales
|
|
657
662
|
last_follow.signed_date,
|
658
663
|
last_follow.created_at as latest_time,
|
659
664
|
last_follow.actual_amount,
|
665
|
+
last_follow.divide_rate,
|
666
|
+
last_follow.divide_amount,
|
667
|
+
(last_follow.total_amount - last_follow.actual_amount) as divide_money,
|
660
668
|
(last_follow.actual_amount - educode_sales_businesses.return_money) as wait_return_money,
|
661
669
|
last_follow.total_amount").joins("
|
662
670
|
LEFT JOIN educode_sales_follow_ups AS last_follow ON educode_sales_businesses.last_follow_up_id = last_follow.id AND last_follow.deleted_at IS NULL
|
@@ -690,6 +698,7 @@ module EducodeSales
|
|
690
698
|
@businesses=Business.where(id:p)
|
691
699
|
@businesses=@businesses.select("
|
692
700
|
educode_sales_businesses.*,
|
701
|
+
last_follow.budget_amount,
|
693
702
|
last_follow.invitation_at,
|
694
703
|
last_follow.reception_at,
|
695
704
|
last_follow.service_time_long,
|
@@ -196,7 +196,7 @@ module EducodeSales
|
|
196
196
|
if params[:name].blank?
|
197
197
|
return render_failure '请从平台里选择教师'
|
198
198
|
end
|
199
|
-
|
199
|
+
|
200
200
|
names = params[:name].split("-")
|
201
201
|
if names[0] == 't'
|
202
202
|
# 从教师列表里选择的用户
|
@@ -255,7 +255,7 @@ module EducodeSales
|
|
255
255
|
end
|
256
256
|
|
257
257
|
def follow_up_params
|
258
|
-
params.permit(:clazz_id, :stage_id, :invitation_at, :reception_at, :total_amount, :actual_amount, :divide_amount, :description, :advise, :place_id, :bidded_date, :signed_date, :year, :o_business_deployment)
|
258
|
+
params.permit(:clazz_id, :stage_id, :invitation_at, :reception_at, :total_amount, :actual_amount, :divide_amount, :divide_rate, :budget_amount, :description, :advise, :place_id, :bidded_date, :signed_date, :year, :o_business_deployment)
|
259
259
|
end
|
260
260
|
|
261
261
|
def teacher_params
|
@@ -217,9 +217,10 @@ module EducodeSales
|
|
217
217
|
def business_area
|
218
218
|
respond_to do |format|
|
219
219
|
format.html do
|
220
|
-
|
221
220
|
end
|
222
221
|
format.js do
|
222
|
+
@business_types = EducodeSales::Common.where(clazz: 'business_type').where.not(extras: "x_class").map { |d| {name: d.name, value: d.id } }
|
223
|
+
@select_business_type = params[:business_type].present? ? params[:business_type].split(",") : []
|
223
224
|
x = EducodeSales::Common.find_by(extras: EducodeSales::Common::XTYPE)&.id
|
224
225
|
o = Common.find_by(extras: EducodeSales::Common::OTYPE)&.id
|
225
226
|
provinces = EducodeSales::Common.where(clazz: 'area').pluck(:name)
|
@@ -228,11 +229,23 @@ module EducodeSales
|
|
228
229
|
if params[:business_type].blank?
|
229
230
|
Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.clazz_id != ?", x, o).sum(:total_amount).round(2)
|
230
231
|
else
|
231
|
-
Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id
|
232
|
+
Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id in (?)", params[:business_type].split(",")).sum(:total_amount).round(2)
|
232
233
|
end
|
233
234
|
}
|
234
235
|
if params[:sort_by].present?
|
235
|
-
|
236
|
+
data_hash = []
|
237
|
+
data.each_with_index do |d, i|
|
238
|
+
data_hash << {id: i, num: d}
|
239
|
+
end
|
240
|
+
|
241
|
+
data_hash.sort! { |a, b| params[:sort_by] == 'asc' ? a[:num] <=> b[:num] : b[:num] <=> a[:num] }
|
242
|
+
data = []
|
243
|
+
provinces_sort = []
|
244
|
+
data_hash.each_with_index do |d|
|
245
|
+
data << d[:num]
|
246
|
+
provinces_sort << provinces[d[:id]]
|
247
|
+
end
|
248
|
+
provinces = provinces_sort
|
236
249
|
end
|
237
250
|
@business_data = {
|
238
251
|
labels: provinces,
|
@@ -251,11 +264,23 @@ module EducodeSales
|
|
251
264
|
if params[:business_type].blank?
|
252
265
|
Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.clazz_id != ?", x, o).count
|
253
266
|
else
|
254
|
-
Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id
|
267
|
+
Business.joins(:last_follow_up).where("educode_sales_businesses.department_id in (?)", School.joins(:departments).where(province: province).pluck("departments.id")).where("educode_sales_follow_ups.clazz_id in (?)", params[:business_type].split(",")).count
|
255
268
|
end
|
256
269
|
}
|
257
270
|
if params[:sort_by].present?
|
258
|
-
|
271
|
+
data_hash = []
|
272
|
+
data.each_Wit_index do |d, i|
|
273
|
+
data_hash << {id: i, num: d}
|
274
|
+
end
|
275
|
+
|
276
|
+
data_hash.sort! { |a, b| params[:sort_by] == 'asc' ? a[:num] <=> b[:num] : b[:num] <=> a[:num] }
|
277
|
+
data = []
|
278
|
+
provinces_sort = []
|
279
|
+
data_hash.each_with_index do |d|
|
280
|
+
data << d[:num]
|
281
|
+
provinces_sort << provinces[d[:id]]
|
282
|
+
end
|
283
|
+
provinces = provinces_sort
|
259
284
|
end
|
260
285
|
@business_data = {
|
261
286
|
labels: provinces,
|
@@ -2,17 +2,34 @@
|
|
2
2
|
<h2>今日工作报告</h2>
|
3
3
|
<hr>
|
4
4
|
<div style="height: 450px;overflow: auto;">
|
5
|
+
|
6
|
+
<p>一、AB类商机开拓情况</p>
|
7
|
+
<p style="margin-bottom: 30px;">
|
8
|
+
本月-<span style="color: rgb(56, 150, 243);font-weight: bold;"><%= @month %>, </span>
|
9
|
+
本季-<span style="color: rgb(56, 150, 243);font-weight: bold;"><%= @quarter %>, </span>
|
10
|
+
本年-<span style="color: rgb(56, 150, 243);font-weight: bold;"><%= @year %></span>
|
11
|
+
</p>
|
12
|
+
<p style="margin-bottom: 30px;">二、本月已组织会议</p>
|
13
|
+
<p>三、客户跟进情况</p>
|
5
14
|
<% text = "\n" %>
|
15
|
+
<% text += "一、AB类商机开拓情况\n" %>
|
16
|
+
<% text += "本月-#{@month }, "%>
|
17
|
+
<% text += "本季-#{@quarter }, "%>
|
18
|
+
<% text += "本年-#{@year }\n\n"%>
|
19
|
+
<% text += "二、本月已组织会议 \n\n"%>
|
20
|
+
<% text += "三、客户跟进情况 \n"%>
|
6
21
|
<% @followups.each_with_index do |d, i| %>
|
7
22
|
<% text += "#{i+1}、**学校--**商机:#{d .description}\n" %>
|
8
|
-
<p
|
23
|
+
<p><%= i+1 %>、**学校--**商机:<%= d .description%></p>
|
9
24
|
<% end %>
|
10
|
-
|
11
|
-
<% text += "
|
12
|
-
<% text += "
|
13
|
-
|
14
|
-
|
15
|
-
|
25
|
+
|
26
|
+
<% text += "\n四、需要协助支持事宜 \n\n"%>
|
27
|
+
<% text += "五、区域招标信息 \n\n"%>
|
28
|
+
<% text += "头歌营销系统 \n"%>
|
29
|
+
<% text += "#{Time.now.to_s}"%>
|
30
|
+
|
31
|
+
<p style="margin-top:30px;margin-bottom: 30px;">四、需要协助支持事宜</p>
|
32
|
+
<p style="margin-bottom: 30px;">五、区域招标信息</p>
|
16
33
|
</div>
|
17
34
|
|
18
35
|
<div id="content" style="display: none;" data-content="今日跟进动态<%=text %>"></div>
|
@@ -78,11 +78,11 @@
|
|
78
78
|
</div>
|
79
79
|
<br class="service_show layui-hide">
|
80
80
|
<div class="layui-inline">
|
81
|
-
<label class="layui-form-label"
|
81
|
+
<label class="layui-form-label">中标额(万)</label>
|
82
82
|
<div class="layui-input-inline">
|
83
83
|
<input name="total_amount" type="number" class="layui-input" value="<%= @follow_up.total_amount %>">
|
84
84
|
</div>
|
85
|
-
|
85
|
+
客户采购支出的费用。中标额的生命历程:1.在最初阶段,是商机的预算总额;2.在挂网阶段,是项目的挂网预算总额;3.在中标阶段,是项目的中标总额。
|
86
86
|
</div>
|
87
87
|
<br>
|
88
88
|
<div class="layui-inline">
|
@@ -105,7 +105,23 @@
|
|
105
105
|
<div class="layui-input-inline">
|
106
106
|
<input name="divide_amount" class="layui-input" value="<%= @follow_up.divide_amount%>">
|
107
107
|
</div>
|
108
|
-
|
108
|
+
中标额里,渠道拿到的部分。
|
109
|
+
</div>
|
110
|
+
<br>
|
111
|
+
<div class="layui-inline">
|
112
|
+
<label class="layui-form-label">预算金额(万)</label>
|
113
|
+
<div class="layui-input-inline">
|
114
|
+
<input name="budget_amount" class="layui-input" value="<%= @last_follow_up&.budget_amount.to_f.round(2) %>">
|
115
|
+
</div>
|
116
|
+
</div>
|
117
|
+
<div class="layui-form-item">
|
118
|
+
<div class="layui-inline">
|
119
|
+
<label class="layui-form-label">分成比例</label>
|
120
|
+
<div class="layui-input-inline">
|
121
|
+
<input name="divide_rate" class="layui-input" value="<%= @follow_up&.divide_rate.to_f.round(2) %>">
|
122
|
+
</div>
|
123
|
+
% 渠道拿到的分成比例。
|
124
|
+
</div>
|
109
125
|
</div>
|
110
126
|
<div class="layui-form-item">
|
111
127
|
<div class="layui-inline">
|
@@ -23,6 +23,10 @@ json.data do
|
|
23
23
|
break
|
24
24
|
end
|
25
25
|
end
|
26
|
+
|
27
|
+
json.divide_rate d.divide_rate
|
28
|
+
json.divide_money d.divide_money
|
29
|
+
json.budget_money d.budget_amount
|
26
30
|
json.area d.department.school.province
|
27
31
|
school_property = d.department.school.school_property
|
28
32
|
property = []
|
@@ -410,10 +410,24 @@
|
|
410
410
|
sort: true,
|
411
411
|
hide: gon.filter.budget_money
|
412
412
|
},
|
413
|
+
{
|
414
|
+
field: 'divide_rate',
|
415
|
+
width: 160,
|
416
|
+
title: '渠道分成比例',
|
417
|
+
sort: true,
|
418
|
+
hide: gon.filter.divide_rate
|
419
|
+
},
|
420
|
+
{
|
421
|
+
field: 'divide_money',
|
422
|
+
width: 160,
|
423
|
+
title: '渠道分成金额',
|
424
|
+
sort: true,
|
425
|
+
hide: gon.filter.divide_money
|
426
|
+
},
|
413
427
|
{
|
414
428
|
field: 'total_amount',
|
415
429
|
width: 100,
|
416
|
-
title: '
|
430
|
+
title: '中标额',
|
417
431
|
totalRow: true,
|
418
432
|
sort: true,
|
419
433
|
hide: gon.filter.total_amount
|
@@ -26,7 +26,9 @@ json.data do
|
|
26
26
|
break
|
27
27
|
end
|
28
28
|
end
|
29
|
-
json.
|
29
|
+
json.divide_rate d.divide_rate
|
30
|
+
json.divide_money d.divide_amount
|
31
|
+
json.budget_money d.budget_amount #d.follow_ups.where(stage_id: @budget_stage_ids).order("created_at desc").first&.total_amount&.round(2) || 0
|
30
32
|
json.area d.department.school.province
|
31
33
|
school_property = d.department.school.school_property
|
32
34
|
property = []
|
@@ -84,12 +84,12 @@
|
|
84
84
|
|
85
85
|
<br class="service_show layui-hide">
|
86
86
|
<div class="layui-inline">
|
87
|
-
<label class="layui-form-label"
|
87
|
+
<label class="layui-form-label">中标额(万)</label>
|
88
88
|
<div class="layui-input-inline">
|
89
89
|
<input name="total_amount" type="number" class="layui-input" autocomplete="off"
|
90
90
|
value="<%= @last_follow_up&.total_amount.to_f.round(2) %>">
|
91
91
|
</div>
|
92
|
-
|
92
|
+
客户采购支出的费用。中标额的生命历程:1.在最初阶段,是商机的预算总额;2.在挂网阶段,是项目的挂网预算总额;3.在中标阶段,是项目的中标总额。
|
93
93
|
</div>
|
94
94
|
<br>
|
95
95
|
<div class="layui-inline">
|
@@ -113,7 +113,23 @@
|
|
113
113
|
<div class="layui-input-inline">
|
114
114
|
<input name="divide_amount" class="layui-input" value="<%= @last_follow_up&.divide_amount.to_f.round(2) %>">
|
115
115
|
</div>
|
116
|
-
|
116
|
+
中标额里,渠道拿到的部分。
|
117
|
+
</div>
|
118
|
+
<br>
|
119
|
+
<div class="layui-inline">
|
120
|
+
<label class="layui-form-label">预算金额(万)</label>
|
121
|
+
<div class="layui-input-inline">
|
122
|
+
<input name="budget_amount" class="layui-input" value="<%= @last_follow_up&.budget_amount.to_f.round(2) %>">
|
123
|
+
</div>
|
124
|
+
</div>
|
125
|
+
<div class="layui-form-item">
|
126
|
+
<div class="layui-inline">
|
127
|
+
<label class="layui-form-label">分成比例</label>
|
128
|
+
<div class="layui-input-inline">
|
129
|
+
<input name="divide_rate" class="layui-input" value="<%= @last_follow_up&.divide_rate.to_f.round(2) %>">
|
130
|
+
</div>
|
131
|
+
% 渠道拿到的分成比例。
|
132
|
+
</div>
|
117
133
|
</div>
|
118
134
|
<div class="layui-form-item">
|
119
135
|
<div class="layui-inline">
|
@@ -186,7 +186,7 @@
|
|
186
186
|
{
|
187
187
|
field: 'total_amount',
|
188
188
|
width: 100,
|
189
|
-
title: '
|
189
|
+
title: '中标额',
|
190
190
|
},
|
191
191
|
{
|
192
192
|
field: 'actual_amount',
|
@@ -519,7 +519,7 @@
|
|
519
519
|
obj.del();
|
520
520
|
layer.close(index);
|
521
521
|
})
|
522
|
-
|
522
|
+
|
523
523
|
});
|
524
524
|
} else if (obj.event === 'show') {
|
525
525
|
content = miniPage.getHrefContent('/missions/plans/show_week?id=' + data.id);
|
@@ -559,7 +559,7 @@
|
|
559
559
|
layer.full(sindex);
|
560
560
|
});
|
561
561
|
return false;
|
562
|
-
}
|
562
|
+
}
|
563
563
|
// else if (obj.event === 'show_follow') {
|
564
564
|
// content = miniPage.getHrefContent('/educode_sales/businesses/show_follow');
|
565
565
|
// openWH = miniPage.getOpenWidthHeight();
|
@@ -81,7 +81,7 @@
|
|
81
81
|
<br>
|
82
82
|
|
83
83
|
<div class="layui-inline">
|
84
|
-
<label class="layui-form-label"
|
84
|
+
<label class="layui-form-label">中标额:</label>
|
85
85
|
<div class="layui-input-inline">
|
86
86
|
<%= @follow_up.total_amount.to_f.round(2) %>万
|
87
87
|
</div>
|
@@ -99,11 +99,17 @@
|
|
99
99
|
<%= @follow_up.place&.name %>
|
100
100
|
</div>
|
101
101
|
</div>
|
102
|
-
<div class="layui-inline">
|
102
|
+
<!-- <div class="layui-inline">
|
103
103
|
<label class="layui-form-label">渠道分成:</label>
|
104
104
|
<div class="layui-input-inline">
|
105
105
|
<%= @follow_up.divide_amount.to_f.round(2) %>万
|
106
106
|
</div>
|
107
|
+
</div> -->
|
108
|
+
<div class="layui-inline">
|
109
|
+
<label class="layui-form-label">分成比例:</label>
|
110
|
+
<div class="layui-input-inline">
|
111
|
+
<%= @follow_up.divide_rate.to_f.round(2) %>%
|
112
|
+
</div>
|
107
113
|
</div>
|
108
114
|
<div class="layui-form-item">
|
109
115
|
<div class="layui-inline">
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<div class="layui-inline m-t-10">
|
13
13
|
<label class="layui-form-label">商机类型</label>
|
14
14
|
<div class="layui-input-inline">
|
15
|
-
|
15
|
+
<div id="business_type"></div>
|
16
16
|
</div>
|
17
17
|
</div>
|
18
18
|
<div class="layui-inline m-t-10">
|
@@ -64,7 +64,13 @@
|
|
64
64
|
}
|
65
65
|
}
|
66
66
|
};
|
67
|
-
|
67
|
+
var business_type_select = xmSelect.render({
|
68
|
+
el: '#business_type',
|
69
|
+
name: 'business_type',
|
70
|
+
data: <%= raw @business_types.to_json %>
|
71
|
+
})
|
72
|
+
business_type_select.setValue(<%= raw @select_business_type.to_json %>);
|
73
|
+
|
68
74
|
|
69
75
|
var ctx = document.getElementById('myChart3');
|
70
76
|
var myChart3 = new Chart(ctx, {
|
@@ -29,8 +29,8 @@
|
|
29
29
|
</div>
|
30
30
|
</form>
|
31
31
|
</div>
|
32
|
-
<canvas id="myChart2" width="960" height="
|
33
|
-
<canvas id="myChart2_1" width="960" height="
|
32
|
+
<canvas id="myChart2" width="960" height="350"></canvas>
|
33
|
+
<canvas id="myChart2_1" width="960" height="350" style="margin-top: 30px;"></canvas>
|
34
34
|
</div>
|
35
35
|
</div>
|
36
36
|
<script>
|
@@ -43,6 +43,14 @@
|
|
43
43
|
tooltips: {
|
44
44
|
enabled: false
|
45
45
|
},
|
46
|
+
layout: {
|
47
|
+
padding: {
|
48
|
+
left: 50,
|
49
|
+
right: 50,
|
50
|
+
top: 0,
|
51
|
+
bottom: 0
|
52
|
+
}
|
53
|
+
},
|
46
54
|
hover: {
|
47
55
|
animationDuration: 0
|
48
56
|
},
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class ChangeDivideRateFollowUps < ActiveRecord::Migration[5.2]
|
2
|
+
def self.up
|
3
|
+
change_table :educode_sales_follow_ups do |t|
|
4
|
+
t.change :divide_rate, :float
|
5
|
+
end
|
6
|
+
add_column :educode_sales_follow_ups, :budget_amount, :float, comment: '预算金额'
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.down
|
10
|
+
change_table :educode_sales_follow_ups do |t|
|
11
|
+
t.change :divide_rate, :integer
|
12
|
+
end
|
13
|
+
remove_column :educode_sales_follow_ups, :budget_amount
|
14
|
+
end
|
15
|
+
end
|
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.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10
|
11
|
+
date: 2022-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -105,7 +105,6 @@ files:
|
|
105
105
|
- app/assets/images/educode_sales/icon-login.png
|
106
106
|
- app/assets/images/educode_sales/icon.png
|
107
107
|
- app/assets/images/educode_sales/indexLogo.png
|
108
|
-
- app/assets/images/educode_sales/indexlogo.png
|
109
108
|
- app/assets/images/educode_sales/loading-0.gif
|
110
109
|
- app/assets/images/educode_sales/loading-1.gif
|
111
110
|
- app/assets/images/educode_sales/loading-2.gif
|
@@ -480,6 +479,7 @@ files:
|
|
480
479
|
- db/migrate/20220921131116_add_change_clazz_to_follow_up.rb
|
481
480
|
- db/migrate/20220923084102_create_table_to_busines_number_recoreds.rb
|
482
481
|
- db/migrate/20221025094655_delete_business_number.rb
|
482
|
+
- db/migrate/20221107122147_change_divide_rate_follow_ups.rb
|
483
483
|
- lib/educode_sales.rb
|
484
484
|
- lib/educode_sales/engine.rb
|
485
485
|
- lib/educode_sales/version.rb
|
@@ -488,7 +488,7 @@ homepage: https://www.educoder.net
|
|
488
488
|
licenses:
|
489
489
|
- MIT
|
490
490
|
metadata: {}
|
491
|
-
post_install_message:
|
491
|
+
post_install_message:
|
492
492
|
rdoc_options: []
|
493
493
|
require_paths:
|
494
494
|
- lib
|
@@ -503,8 +503,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
503
503
|
- !ruby/object:Gem::Version
|
504
504
|
version: '0'
|
505
505
|
requirements: []
|
506
|
-
rubygems_version: 3.0.
|
507
|
-
signing_key:
|
506
|
+
rubygems_version: 3.0.0
|
507
|
+
signing_key:
|
508
508
|
specification_version: 4
|
509
509
|
summary: Summary of EducodeSales.
|
510
510
|
test_files: []
|
Binary file
|