educode_sales 0.4.9 → 0.5.3
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/assets/images/educode_sales//345/233/236/346/224/266/347/253/231.png +0 -0
- data/app/controllers/educode_sales/businesses_controller.rb +27 -13
- data/app/controllers/educode_sales/follow_ups_controller.rb +3 -2
- data/app/controllers/educode_sales/operation_plans_controller.rb +23 -2
- data/app/controllers/educode_sales/operation_reports_controller.rb +33 -3
- data/app/controllers/educode_sales/plans_controller.rb +28 -7
- data/app/controllers/educode_sales/recycles_controller.rb +95 -0
- data/app/controllers/educode_sales/roles_controller.rb +5 -0
- data/app/controllers/educode_sales/sale_reports_controller.rb +34 -4
- data/app/controllers/educode_sales/sale_trends_controller.rb +171 -0
- data/app/controllers/educode_sales/sales_controller.rb +4 -0
- data/app/controllers/educode_sales/staffs_controller.rb +4 -4
- data/app/controllers/educode_sales/upload_files_controller.rb +40 -27
- data/app/models/concerns/deletable.rb +8 -0
- data/app/models/educode_sales/application_record.rb +2 -0
- data/app/models/educode_sales/business.rb +15 -2
- data/app/models/educode_sales/common.rb +2 -1
- data/app/models/educode_sales/follow_up.rb +4 -2
- data/app/models/educode_sales/recycle.rb +5 -0
- data/app/models/educode_sales/sale_plan.rb +3 -0
- data/app/models/educode_sales/sale_report.rb +2 -0
- data/app/views/educode_sales/businesses/edit_plan.html.erb +2 -2
- data/app/views/educode_sales/businesses/file.html.erb +30 -15
- data/app/views/educode_sales/businesses/index.html.erb +20 -7
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +5 -1
- data/app/views/educode_sales/businesses/show_follow.html.erb +8 -2
- data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -0
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +1 -1
- data/app/views/educode_sales/businesses/time_line.html.erb +5 -1
- data/app/views/educode_sales/businesses/upload_file.html.erb +4 -4
- data/app/views/educode_sales/operation_plans/index.html.erb +6 -1
- data/app/views/educode_sales/operation_plans/new_week.html.erb +1 -1
- data/app/views/educode_sales/operation_reports/audit.html.erb +14 -6
- data/app/views/educode_sales/operation_reports/show.html.erb +13 -10
- data/app/views/educode_sales/places/index.html.erb +6 -1
- data/app/views/educode_sales/places/index.json.jbuilder +11 -1
- data/app/views/educode_sales/plans/index.html.erb +6 -1
- data/app/views/educode_sales/plans/new_monthly.html.erb +6 -6
- data/app/views/educode_sales/plans/new_week.html.erb +1 -1
- data/app/views/educode_sales/plans/new_weekly.html.erb +7 -7
- data/app/views/educode_sales/recycles/_business.html.erb +122 -0
- data/app/views/educode_sales/recycles/_monthPlan.html.erb +123 -0
- data/app/views/educode_sales/recycles/_monthly.html.erb +121 -0
- data/app/views/educode_sales/recycles/_weekPlan.html.erb +128 -0
- data/app/views/educode_sales/recycles/_weekly.html.erb +122 -0
- data/app/views/educode_sales/recycles/business.json.jbuilder +16 -0
- data/app/views/educode_sales/recycles/index.html.erb +58 -0
- data/app/views/educode_sales/recycles/monthPlan.json.jbuilder +16 -0
- data/app/views/educode_sales/recycles/monthly.json.jbuilder +15 -0
- data/app/views/educode_sales/recycles/weekPlan.json.jbuilder +16 -0
- data/app/views/educode_sales/recycles/weekly.json.jbuilder +15 -0
- data/app/views/educode_sales/roles/index.html.erb +19 -1
- data/app/views/educode_sales/roles/rename.html.erb +50 -0
- data/app/views/educode_sales/sale_reports/audit.html.erb +17 -6
- data/app/views/educode_sales/sale_reports/show.html.erb +11 -8
- data/app/views/educode_sales/sale_trends/trends.html.erb +252 -8
- data/app/views/educode_sales/sale_trends/trends.json.jbuilder +14 -0
- data/app/views/educode_sales/sales/index.html.erb +75 -9
- data/app/views/educode_sales/sales/index.json.jbuilder +35 -1
- data/app/views/educode_sales/sales/operations.json.jbuilder +11 -1
- data/app/views/educode_sales/staffs/index.html.erb +6 -1
- data/app/views/educode_sales/staffs/index.json.jbuilder +11 -1
- data/app/views/educode_sales/teachers/add_keys.html.erb +3 -3
- data/app/views/educode_sales/teachers/index.html.erb +7 -2
- data/app/views/educode_sales/teachers/new.html.erb +1 -0
- data/app/views/educode_sales/upload_files/index.json.jbuilder +2 -2
- data/app/views/layouts/educode_sales/application.html.erb +3 -0
- data/config/routes.rb +18 -0
- data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +6 -0
- data/db/migrate/20211109015617_create_educode_sales_recycles.rb +25 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +20 -2
@@ -0,0 +1,50 @@
|
|
1
|
+
<form class="layui-form " action="">
|
2
|
+
<div class="layui-form-item" style="padding: 25px">
|
3
|
+
<div class="layui-inline">
|
4
|
+
<label class="layui-form-label required">角色名称</label>
|
5
|
+
<div class="layui-input-block" style="line-height: 36px;">
|
6
|
+
<input type="text" name="name" id="name" required lay-verify="required" autocomplete="off"
|
7
|
+
class="layui-input" value="<%=@name %>">
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<div class="layui-inline" style="padding-left: 30px">
|
11
|
+
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="submits">提交
|
12
|
+
</button>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</form>
|
16
|
+
|
17
|
+
|
18
|
+
<script>
|
19
|
+
|
20
|
+
layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput', 'transfer'], function () {
|
21
|
+
var form = layui.form,
|
22
|
+
layer = layui.layer,
|
23
|
+
table = layui.table,
|
24
|
+
transfer = layui.transfer,
|
25
|
+
laytpl = layui.laytpl,
|
26
|
+
request = layui.request,
|
27
|
+
$ = layui.$;
|
28
|
+
|
29
|
+
form.render();
|
30
|
+
|
31
|
+
// 当前弹出层,防止ID被覆盖
|
32
|
+
var parentIndex = layer.index;
|
33
|
+
|
34
|
+
//监听提交
|
35
|
+
form.on('submit(submits)', function (data) {
|
36
|
+
console.log(data);
|
37
|
+
request.authPut('missions/roles/' + parent.id + '/update_role/', data.field,
|
38
|
+
function(res) {
|
39
|
+
if (res.success) {
|
40
|
+
table.reload('role');
|
41
|
+
layer.close(parent.rename_index)
|
42
|
+
} else {
|
43
|
+
layer.alert(res.msg)
|
44
|
+
}
|
45
|
+
|
46
|
+
})
|
47
|
+
return false;
|
48
|
+
});
|
49
|
+
});
|
50
|
+
</script>
|
@@ -36,7 +36,8 @@
|
|
36
36
|
3、补充说明需要上级解决的问题和挑战。" disabled class="layui-textarea autosize"><%= @sale_report.content %></textarea>
|
37
37
|
</div>
|
38
38
|
</div>
|
39
|
-
|
39
|
+
<% if can? :level1_audit, EducodeSales::SaleReport %>
|
40
|
+
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
40
41
|
<label class="layui-form-label">大区意见</label>
|
41
42
|
<div class="layui-input-block">
|
42
43
|
<textarea name="level1_opinion" placeholder="给出评价、提醒、建议、办法等。"
|
@@ -44,7 +45,10 @@
|
|
44
45
|
</div>
|
45
46
|
</div>
|
46
47
|
<div id="weekStar4" style="margin-bottom: 40px"></div>
|
47
|
-
|
48
|
+
<% end %>
|
49
|
+
|
50
|
+
<% if can? :level2_audit, EducodeSales::SaleReport %>
|
51
|
+
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
48
52
|
<label class="layui-form-label">总监意见</label>
|
49
53
|
<div class="layui-input-block">
|
50
54
|
<textarea name="level2_opinion" placeholder="给出评价、提醒、建议、办法等。"
|
@@ -52,7 +56,10 @@
|
|
52
56
|
</div>
|
53
57
|
</div>
|
54
58
|
<div id="weekStar5" style="margin-bottom: 40px"></div>
|
55
|
-
|
59
|
+
<% end %>
|
60
|
+
|
61
|
+
<% if can? :level3_audit, EducodeSales::SaleReport %>
|
62
|
+
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
56
63
|
<label class="layui-form-label">副总意见</label>
|
57
64
|
<div class="layui-input-block">
|
58
65
|
<textarea name="level3_opinion" placeholder="给出评价、提醒、建议、办法等。"
|
@@ -60,11 +67,15 @@
|
|
60
67
|
</div>
|
61
68
|
</div>
|
62
69
|
<div id="weekStar6" style="margin-bottom: 40px"></div>
|
70
|
+
<% end %>
|
71
|
+
|
63
72
|
<br>
|
64
73
|
<div class="layui-inline m-t-10">
|
74
|
+
<% if (can? :level1_audit, EducodeSales::SaleReport) || (can? :level2_audit, EducodeSales::SaleReport) || (can? :level3_audit, EducodeSales::SaleReport) %>
|
65
75
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="audit_weekly_report"
|
66
76
|
style="margin-left: 18px">提交
|
67
77
|
</button>
|
78
|
+
<% end %>
|
68
79
|
</div>
|
69
80
|
</div>
|
70
81
|
</form>
|
@@ -89,7 +100,7 @@
|
|
89
100
|
rate.render({
|
90
101
|
elem: '#weekStar4',
|
91
102
|
half: true,
|
92
|
-
|
103
|
+
value: parseFloat("<%= @sale_report.level1_score || 0%>"),
|
93
104
|
length: 5,
|
94
105
|
choose: function(value){
|
95
106
|
level1_score = value
|
@@ -98,7 +109,7 @@
|
|
98
109
|
rate.render({
|
99
110
|
elem: '#weekStar5',
|
100
111
|
half: true,
|
101
|
-
|
112
|
+
value: parseFloat("<%= @sale_report.level2_score || 0%>"),
|
102
113
|
length: 5,
|
103
114
|
choose: function(value){
|
104
115
|
level2_score = value
|
@@ -107,7 +118,7 @@
|
|
107
118
|
rate.render({
|
108
119
|
elem: '#weekStar6',
|
109
120
|
half: true,
|
110
|
-
|
121
|
+
value: parseFloat("<%= @sale_report.level3_score || 0%>"),
|
111
122
|
length: 5,
|
112
123
|
choose: function(value){
|
113
124
|
level3_score = value
|
@@ -35,6 +35,7 @@
|
|
35
35
|
3、补充说明需要上级解决的问题和挑战。" disabled class="layui-textarea autosize"><%= @sale_report.content %></textarea>
|
36
36
|
</div>
|
37
37
|
</div>
|
38
|
+
<% if @sale_report.level1_opinion.present? || @sale_report.level1_score %>
|
38
39
|
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
39
40
|
<label class="layui-form-label">大区意见</label>
|
40
41
|
<div class="layui-input-block">
|
@@ -43,7 +44,9 @@
|
|
43
44
|
</div>
|
44
45
|
</div>
|
45
46
|
<div id="weekStar4" style="margin-bottom: 40px"></div>
|
46
|
-
|
47
|
+
<%end %>
|
48
|
+
<% if @sale_report.level2_opinion.present? || @sale_report.level2_score %>
|
49
|
+
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
47
50
|
<label class="layui-form-label">总监意见</label>
|
48
51
|
<div class="layui-input-block">
|
49
52
|
<textarea name="desc" placeholder="给出评价、提醒、建议、办法等。" disabled
|
@@ -51,7 +54,9 @@
|
|
51
54
|
</div>
|
52
55
|
</div>
|
53
56
|
<div id="weekStar5" style="margin-bottom: 40px"></div>
|
54
|
-
|
57
|
+
<%end %>
|
58
|
+
<% if @sale_report.level3_opinion.present? || @sale_report.level3_score %>
|
59
|
+
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
55
60
|
<label class="layui-form-label">副总意见</label>
|
56
61
|
<div class="layui-input-block">
|
57
62
|
<textarea name="desc" placeholder="给出评价、提醒、建议、办法等。" disabled
|
@@ -59,6 +64,7 @@
|
|
59
64
|
</div>
|
60
65
|
</div>
|
61
66
|
<div id="weekStar6" style="margin-bottom: 40px"></div>
|
67
|
+
<%end %>
|
62
68
|
<br>
|
63
69
|
</div>
|
64
70
|
</form>
|
@@ -78,22 +84,19 @@
|
|
78
84
|
elem: '#weekStar4',
|
79
85
|
half: true,
|
80
86
|
readonly: true,
|
81
|
-
|
82
|
-
length: "<%= @sale_report.level1_score %>"
|
87
|
+
value: parseFloat("<%= @sale_report.level1_score || 0%>"),
|
83
88
|
})
|
84
89
|
rate.render({
|
85
90
|
elem: '#weekStar5',
|
86
91
|
half: true,
|
87
92
|
readonly: true,
|
88
|
-
|
89
|
-
length: "<%= @sale_report.level2_score %>"
|
93
|
+
value: parseFloat("<%= @sale_report.level2_score || 0%> "),
|
90
94
|
})
|
91
95
|
rate.render({
|
92
96
|
elem: '#weekStar6',
|
93
97
|
half: true,
|
94
98
|
readonly: true,
|
95
|
-
|
96
|
-
length: "<%= @sale_report.level3_score %>"
|
99
|
+
value: parseFloat("<%= @sale_report.level3_score || 0%>"),
|
97
100
|
})
|
98
101
|
|
99
102
|
table.on('tool(showWeeklyTable)', function (obj) {
|
@@ -88,7 +88,7 @@
|
|
88
88
|
<div class="panel layui-bg-number">
|
89
89
|
<div class="panel-body">
|
90
90
|
<div class="panel-title">
|
91
|
-
<h5>现有商机<a href="/missions/businesses?name=(销售态势-现有商机)" style="
|
91
|
+
<h5>现有商机<a href="/missions/businesses?name=(销售态势-现有商机)" style="color: #0000FF;float: right">查看商机</a></h5>
|
92
92
|
</div>
|
93
93
|
<div class="panel-content y-t-10">
|
94
94
|
<h1 class="no-margins"><%= @business_amount %>万</h1>
|
@@ -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>已中标<a href="/missions/businesses?name=(
|
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>已签单<a href="/missions/businesses?name=(
|
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>
|
@@ -127,7 +127,7 @@
|
|
127
127
|
<div class="panel layui-bg-number">
|
128
128
|
<div class="panel-body">
|
129
129
|
<div class="panel-title">
|
130
|
-
<h5>已回款<a href="/missions/businesses?name=(
|
130
|
+
<h5>已回款<a href="/missions/businesses?name=(销售态势-<%=@year %>-已回款商机)" style="color: #0000FF;float: right">查看商机</a></h5>
|
131
131
|
</div>
|
132
132
|
<div class="panel-content y-t-10">
|
133
133
|
<h1 class="no-margins"><%= @return_amount %>万</h1>
|
@@ -140,7 +140,7 @@
|
|
140
140
|
<div class="panel layui-bg-number">
|
141
141
|
<div class="panel-body">
|
142
142
|
<div class="panel-title">
|
143
|
-
<h5>A类商机<a href="/missions/businesses?clazz_id=<%=EducodeSales::Common.find_by(extras: EducodeSales::Common::ATYPE)&.id %>" style="
|
143
|
+
<h5>A类商机<a href="/missions/businesses?clazz_id=<%=EducodeSales::Common.find_by(extras: EducodeSales::Common::ATYPE)&.id %>" style="color: #0000FF;float: right">查看商机</a></h5>
|
144
144
|
</div>
|
145
145
|
<div class="panel-content y-t-10">
|
146
146
|
<h1 class="no-margins"><%= @a_amount %>万</h1>
|
@@ -153,7 +153,7 @@
|
|
153
153
|
<div class="panel layui-bg-number">
|
154
154
|
<div class="panel-body">
|
155
155
|
<div class="panel-title">
|
156
|
-
<h5>B类商机<a href="/missions/businesses?clazz_id=<%=EducodeSales::Common.find_by(extras: EducodeSales::Common::BTYPE)&.id %>" style="
|
156
|
+
<h5>B类商机<a href="/missions/businesses?clazz_id=<%=EducodeSales::Common.find_by(extras: EducodeSales::Common::BTYPE)&.id %>" style="color: #0000FF;float: right">查看商机</a></h5>
|
157
157
|
</div>
|
158
158
|
<div class="panel-content y-t-10">
|
159
159
|
<h1 class="no-margins"><%= @b_amount %>万</h1>
|
@@ -168,12 +168,132 @@
|
|
168
168
|
</div>
|
169
169
|
</div>
|
170
170
|
</form>
|
171
|
+
<br>
|
172
|
+
<div class="layui-tab layui-tab-card" id="商机跟进数">
|
173
|
+
<ul class="layui-tab-title">
|
174
|
+
<li class="layui-this">商机跟进数</li>
|
175
|
+
</ul>
|
176
|
+
<div class="layui-tab-content" style="padding-right: 50px">
|
177
|
+
<div class="layui-tab-item layui-show " style="padding-left: 20px">
|
178
|
+
<div style="margin: 10px 10px 10px 10px">
|
179
|
+
<form class="layui-form layui-form-pane" lay-filter="search_form">
|
180
|
+
<div class="layui-form-item">
|
181
|
+
<div class="layui-inline m-t-10">
|
182
|
+
<label class="layui-form-label">视图</label>
|
183
|
+
<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'}%>
|
185
|
+
</div>
|
186
|
+
</div>
|
187
|
+
<div class="layui-inline">
|
188
|
+
<label class="layui-form-label">时间范围</label>
|
189
|
+
<div class="layui-input-inline">
|
190
|
+
<input type="text" class="layui-input month layui-hide" id="date_month" name="date_month" placeholder=" - " value="<%=params[:date_month] %>" >
|
191
|
+
<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 day" id="date" name="date" placeholder=" - " value="<%=params[:date] %>">
|
193
|
+
</div>
|
194
|
+
</div>
|
195
|
+
<div class="layui-inline">
|
196
|
+
<button type="submit" id="search_bt" class=" follow_count_bt layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">确定
|
197
|
+
</button>
|
198
|
+
</div>
|
199
|
+
</div>
|
200
|
+
</form>
|
201
|
+
</div>
|
202
|
+
<canvas id="myChart" width="960" height="200"></canvas>
|
203
|
+
</div>
|
204
|
+
</div>
|
205
|
+
</div>
|
206
|
+
<br>
|
207
|
+
<br>
|
208
|
+
<div class="layui-tab layui-tab-card " id="销售额分析" lay-filter="test1">
|
209
|
+
<ul class="layui-tab-title">
|
210
|
+
<li class="layui-this">销售额分析</li>
|
211
|
+
</ul>
|
212
|
+
<div class="layui-tab-content" style="padding-right: 50px">
|
213
|
+
<div class="layui-tab-item layui-show" style="padding-left: 20px">
|
214
|
+
<div style="margin: 10px 10px 10px 10px">
|
215
|
+
<form class="layui-form layui-form-pane" lay-filter="search_form">
|
216
|
+
<div class="layui-form-item">
|
217
|
+
<div class="layui-inline m-t-10">
|
218
|
+
<label class="layui-form-label">视图</label>
|
219
|
+
<div class="layui-input-inline">
|
220
|
+
<%= select_tag "goal_count_range", options_for_select([['按月','month'],['按年','year']],params[:goal_count_range]), {'lay-filter': 'goal_count'}%>
|
221
|
+
</div>
|
222
|
+
</div>
|
223
|
+
<div class="layui-inline">
|
224
|
+
<label class="layui-form-label">时间范围</label>
|
225
|
+
<div class="layui-input-inline">
|
226
|
+
<input type="text" class="layui-input goal_month " id="goal_date_month" name="goal_date_month" placeholder=" - " value="<%=params[:goal_date_month] %>">
|
227
|
+
<input type="text" class="layui-input goal_year layui-hide" id="goal_date_year" name="goal_date_year" placeholder=" - " value="<%=params[:goal_date_year] %>">
|
228
|
+
</div>
|
229
|
+
</div>
|
230
|
+
<div class="layui-inline">
|
231
|
+
<button type="submit" id="search_bt" class="follow_count_bt layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">确定
|
232
|
+
</button>
|
233
|
+
</div>
|
234
|
+
</div>
|
235
|
+
</form>
|
236
|
+
</div>
|
237
|
+
<canvas id="myChart2" width="960" height="200"></canvas>
|
238
|
+
</div>
|
239
|
+
|
240
|
+
</div>
|
241
|
+
</div>
|
242
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/chart.js@2.9.1/dist/Chart.min.css">
|
243
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.1/dist/Chart.min.js"></script>
|
171
244
|
<script>
|
245
|
+
follow_type = "<%=@follow_count_range %>"
|
246
|
+
goal_type = "<%=@goal_count_range %>"
|
247
|
+
follow_flag = <%=params[:follow_count_range].present? %>
|
248
|
+
if(follow_flag){
|
249
|
+
window.location.href = "#商机跟进数"
|
250
|
+
}
|
251
|
+
|
252
|
+
goal_flag = <%=params[:goal_count_range].present? %>
|
253
|
+
if(goal_flag){
|
254
|
+
window.location.href = "#销售额分析"
|
255
|
+
}
|
172
256
|
layui.use(['form', 'jquery', 'request'], function () {
|
173
257
|
var $ = layui.jquery,
|
174
258
|
form = layui.form,
|
175
259
|
request = layui.request;
|
176
260
|
var year = "<%= @year %>";
|
261
|
+
var element = layui.element;
|
262
|
+
laydate = layui.laydate;
|
263
|
+
|
264
|
+
$(document).ready(function () {
|
265
|
+
$(".follow_count_bt").click(function () {
|
266
|
+
layer.msg("图表绘制中...", {
|
267
|
+
time: 0, //不自动关闭
|
268
|
+
offset:['40%','46%']
|
269
|
+
})
|
270
|
+
layer.load(0, {});
|
271
|
+
setTimeout(function () {
|
272
|
+
layer.closeAll('loading');
|
273
|
+
}, 10000);
|
274
|
+
});
|
275
|
+
});
|
276
|
+
if(follow_type == "day"){
|
277
|
+
$(".year").addClass('layui-hide')
|
278
|
+
$(".month").addClass('layui-hide')
|
279
|
+
$(".day").removeClass('layui-hide')
|
280
|
+
}else if(follow_type == "month"){
|
281
|
+
$(".year").addClass('layui-hide')
|
282
|
+
$(".month").removeClass('layui-hide')
|
283
|
+
$(".day").addClass('layui-hide')
|
284
|
+
}else {
|
285
|
+
$(".year").removeClass('layui-hide')
|
286
|
+
$(".month").addClass('layui-hide')
|
287
|
+
$(".day").addClass('layui-hide')
|
288
|
+
}
|
289
|
+
|
290
|
+
if(goal_type == "year"){
|
291
|
+
$(".goal_year").removeClass('layui-hide')
|
292
|
+
$(".goal_month").addClass('layui-hide')
|
293
|
+
}else{
|
294
|
+
$(".goal_year").addClass('layui-hide')
|
295
|
+
$(".goal_month").removeClass('layui-hide')
|
296
|
+
}
|
177
297
|
|
178
298
|
function editForm(el) {
|
179
299
|
$("#" + el + "_edit").click(function() {
|
@@ -205,18 +325,142 @@
|
|
205
325
|
})
|
206
326
|
}
|
207
327
|
|
328
|
+
// 时间选择器
|
329
|
+
laydate.render({
|
330
|
+
elem: '#date',
|
331
|
+
min: -15
|
332
|
+
,max: 0,
|
333
|
+
range: true
|
334
|
+
});
|
335
|
+
laydate.render({
|
336
|
+
type: 'week',
|
337
|
+
elem: '#date_week',
|
338
|
+
min: -90
|
339
|
+
,max: 0,
|
340
|
+
range: true
|
341
|
+
});
|
342
|
+
laydate.render({
|
343
|
+
type: 'month',
|
344
|
+
elem: '#date_month',
|
345
|
+
min: -365
|
346
|
+
,max: 0,
|
347
|
+
range: true
|
348
|
+
});
|
349
|
+
laydate.render({
|
350
|
+
type: 'year',
|
351
|
+
elem: '#date_year',
|
352
|
+
min: -3660
|
353
|
+
,max: 0,
|
354
|
+
range: true
|
355
|
+
});
|
356
|
+
laydate.render({
|
357
|
+
type: 'year',
|
358
|
+
elem: '#goal_date_year',
|
359
|
+
min: -3660
|
360
|
+
,max: 0,
|
361
|
+
range: true
|
362
|
+
});
|
363
|
+
laydate.render({
|
364
|
+
type: 'month',
|
365
|
+
elem: '#goal_date_month',
|
366
|
+
min: -365
|
367
|
+
,max: 0,
|
368
|
+
range: true
|
369
|
+
});
|
370
|
+
|
371
|
+
|
208
372
|
form.on('select(year)', function(data){
|
209
373
|
console.log(data, )
|
210
374
|
year = data.value
|
211
375
|
window.location.href = "/missions/sale_trends/trends?year=" + data.value
|
212
376
|
})
|
213
|
-
|
377
|
+
form.on('select(follow_count)', function(data){
|
378
|
+
console.log(data, )
|
379
|
+
const value = data.value;
|
380
|
+
if(value == "month"){
|
381
|
+
$(".year").addClass('layui-hide')
|
382
|
+
$(".day").addClass('layui-hide')
|
383
|
+
$(".month").removeClass('layui-hide')
|
384
|
+
}else if(value == "year"){
|
385
|
+
$(".month").addClass('layui-hide')
|
386
|
+
$(".day").addClass('layui-hide')
|
387
|
+
$(".year").removeClass('layui-hide')
|
388
|
+
}else {
|
389
|
+
$(".month").addClass('layui-hide')
|
390
|
+
$(".year").addClass('layui-hide')
|
391
|
+
$(".day").removeClass('layui-hide')
|
392
|
+
}
|
393
|
+
})
|
394
|
+
|
395
|
+
form.on('select(goal_count)', function(data){
|
396
|
+
console.log(data, )
|
397
|
+
const value = data.value;
|
398
|
+
if(value == "month"){
|
399
|
+
$(".goal_year").addClass('layui-hide')
|
400
|
+
$(".goal_month").removeClass('layui-hide')
|
401
|
+
}else {
|
402
|
+
$(".goal_month").addClass('layui-hide')
|
403
|
+
$(".goal_year").removeClass('layui-hide')
|
404
|
+
}
|
405
|
+
})
|
406
|
+
|
214
407
|
editForm("chance_money");
|
215
408
|
editForm("ballot_money");
|
216
409
|
editForm("sign_money");
|
217
410
|
editForm("returned_money");
|
218
411
|
|
219
|
-
|
412
|
+
element.on('tab(test1)', function(){
|
413
|
+
window.location.href = "#销售额分析"
|
414
|
+
});
|
415
|
+
|
416
|
+
var ctx = document.getElementById('myChart');
|
417
|
+
var myChart = new Chart(ctx, {
|
418
|
+
type: 'line',
|
419
|
+
data: <%=raw @follow_count_data.to_json %>,
|
420
|
+
options: {
|
421
|
+
elements: {
|
422
|
+
line: {
|
423
|
+
tension: 0
|
424
|
+
}
|
425
|
+
}
|
426
|
+
}
|
427
|
+
});
|
428
|
+
|
429
|
+
|
430
|
+
var opt = {
|
431
|
+
events: false,
|
432
|
+
tooltips: {
|
433
|
+
enabled: false
|
434
|
+
},
|
435
|
+
hover: {
|
436
|
+
animationDuration: 0
|
437
|
+
},
|
438
|
+
animation: {
|
439
|
+
duration: 1,
|
440
|
+
onComplete: function () {
|
441
|
+
var chartInstance = this.chart,
|
442
|
+
ctx = chartInstance.ctx;
|
443
|
+
ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
|
444
|
+
ctx.textAlign = 'center';
|
445
|
+
ctx.textBaseline = 'bottom';
|
446
|
+
|
447
|
+
this.data.datasets.forEach(function (dataset, i) {
|
448
|
+
var meta = chartInstance.controller.getDatasetMeta(i);
|
449
|
+
meta.data.forEach(function (bar, index) {
|
450
|
+
var data = dataset.data[index];
|
451
|
+
ctx.fillText(data, bar._model.x, bar._model.y - 5);
|
452
|
+
});
|
453
|
+
});
|
454
|
+
}
|
455
|
+
}
|
456
|
+
};
|
457
|
+
|
220
458
|
|
459
|
+
var ctx = document.getElementById('myChart2');
|
460
|
+
var myChart2 = new Chart(ctx, {
|
461
|
+
type: 'bar',
|
462
|
+
data: <%=raw @goal_count_data.to_json %>,
|
463
|
+
options: opt
|
464
|
+
});
|
221
465
|
})
|
222
466
|
</script>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
my_array = [1,2,3,4,5]
|
2
|
+
json.data do
|
3
|
+
json.labels my_array
|
4
|
+
json.datasets do
|
5
|
+
json.array! [1,2] do |d|
|
6
|
+
json.label '人名'
|
7
|
+
json.backgroundColor "#fff"
|
8
|
+
json.borderColor "#36A2EB"
|
9
|
+
json.pointBackgroundColor "#36A2EB"
|
10
|
+
json.pointBorderColor "#fff"
|
11
|
+
json.data my_array
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="section">
|
2
2
|
<h4><span>销售人员列表</span></h4>
|
3
3
|
<hr>
|
4
|
-
<table class="layui-hide" id="table"></table>
|
4
|
+
<table class="layui-hide" id="table" lay-filter="table" ></table>
|
5
5
|
</div>
|
6
6
|
<script type="text/html" id="toolbarDemo">
|
7
7
|
<div class="layui-btn-container">
|
@@ -18,6 +18,26 @@
|
|
18
18
|
<a href="/missions/businesses?clazz_id={{d.b_clazz_id}}&staff_id={{d.id}}">{{d.business_b}}</a>
|
19
19
|
</div>
|
20
20
|
</script>
|
21
|
+
<script type="text/html" id="business_c">
|
22
|
+
<div class="layui-text">
|
23
|
+
<a href="/missions/businesses?clazz_id={{d.c_clazz_id}}&staff_id={{d.id}}">{{d.business_c}}</a>
|
24
|
+
</div>
|
25
|
+
</script>
|
26
|
+
<script type="text/html" id="business_d">
|
27
|
+
<div class="layui-text">
|
28
|
+
<a href="/missions/businesses?clazz_id={{d.d_clazz_id}}&staff_id={{d.id}}">{{d.business_d}}</a>
|
29
|
+
</div>
|
30
|
+
</script>
|
31
|
+
<script type="text/html" id="business_e">
|
32
|
+
<div class="layui-text">
|
33
|
+
<a href="/missions/businesses?clazz_id={{d.e_clazz_id}}&staff_id={{d.id}}">{{d.business_e}}</a>
|
34
|
+
</div>
|
35
|
+
</script>
|
36
|
+
<script type="text/html" id="business_o">
|
37
|
+
<div class="layui-text">
|
38
|
+
<a href="/missions/businesses?clazz_id={{d.o_clazz_id}}&staff_id={{d.id}}">{{d.business_o}}</a>
|
39
|
+
</div>
|
40
|
+
</script>
|
21
41
|
<script>
|
22
42
|
layui.use('table', function () {
|
23
43
|
var table = layui.table;
|
@@ -45,22 +65,53 @@
|
|
45
65
|
title: 'A类商机',
|
46
66
|
templet: "#business_a",
|
47
67
|
totalRow:true,
|
48
|
-
|
49
|
-
|
68
|
+
sort:true,
|
69
|
+
width: 100
|
70
|
+
},
|
71
|
+
{
|
50
72
|
field: 'business_b',
|
51
73
|
title: 'B类商机',
|
52
74
|
templet: "#business_b",
|
53
|
-
totalRow:true,
|
54
|
-
width:
|
55
|
-
},
|
75
|
+
totalRow:true,sort:true,
|
76
|
+
width: 100
|
77
|
+
},
|
78
|
+
{
|
79
|
+
field: 'business_c',
|
80
|
+
title: 'C类商机',
|
81
|
+
templet: "#business_c",
|
82
|
+
totalRow:true,sort:true,
|
83
|
+
width: 100
|
84
|
+
},
|
85
|
+
{
|
86
|
+
field: 'business_d',
|
87
|
+
title: 'D类商机',
|
88
|
+
templet: "#business_d",
|
89
|
+
totalRow:true,sort:true,
|
90
|
+
width: 100
|
91
|
+
},
|
92
|
+
{
|
93
|
+
field: 'business_e',
|
94
|
+
title: 'E类商机',
|
95
|
+
templet: "#business_e",
|
96
|
+
totalRow:true,sort:true,
|
97
|
+
width: 100
|
98
|
+
},
|
99
|
+
{
|
100
|
+
field: 'business_o',
|
101
|
+
title: 'O类商机',
|
102
|
+
templet: "#business_o",
|
103
|
+
totalRow:true,sort:true,
|
104
|
+
width: 100
|
105
|
+
},
|
106
|
+
{
|
56
107
|
field: 'goal',
|
57
108
|
title: '中标金额',
|
58
|
-
totalRow:true,
|
109
|
+
totalRow:true,sort:true,
|
59
110
|
width: 120
|
60
111
|
}, {
|
61
112
|
field: 'return_money',
|
62
|
-
title: '
|
63
|
-
totalRow:true,
|
113
|
+
title: '回款金额',
|
114
|
+
totalRow:true,sort:true,
|
64
115
|
width: 120
|
65
116
|
}
|
66
117
|
]
|
@@ -69,5 +120,20 @@
|
|
69
120
|
limits: [10,15,20,30,40,50,60,70,80,90],
|
70
121
|
page: true
|
71
122
|
});
|
123
|
+
|
124
|
+
// var sort = {}, search = {};
|
125
|
+
// table.on('sort(table)', function (obj) {
|
126
|
+
// sort.field = obj.field;
|
127
|
+
// sort.order = obj.type;
|
128
|
+
// table.reload('table', {
|
129
|
+
// initSort: obj,
|
130
|
+
// where: {
|
131
|
+
// sort: sort,
|
132
|
+
// q: search
|
133
|
+
// }
|
134
|
+
// });
|
135
|
+
// })
|
136
|
+
|
137
|
+
|
72
138
|
});
|
73
139
|
</script>
|