educode_sales 0.9.3 → 0.9.4

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.
@@ -1,411 +1,260 @@
1
- <form class="layui-form" action="">
2
- <div class="welcome">
3
- <div class="content-body">
4
- <div class="m-b-10">
5
- <i class="fa fa-warning icon"></i>年度
6
- <div class="layui-input-inline">
7
- <%= select_tag "years", options_for_select(@years, @year), {'lay-filter': 'year'} %>
8
- </div>
9
- </div>
10
- <div class="layui-card-bodys">
11
- <div class="">
12
- <div class="layui-row layui-col-space30">
13
- <div class="layui-col-xs3">
14
- <div class="panel layui-bg-number">
15
- <div class="panel-body">
16
- <div class="panel-title">
17
- <% if can? :sale_trends, EducodeSales::SaleTrend %>
18
- <span class="layui-icon layui-icon-edit pull-right" id="chance_money_edit"></span>
19
- <% end %>
20
- <h5>商机目标</h5>
21
- </div>
22
- <div class="panel-content y-t-10">
23
- <h1 class="no-margins" id="chance_money_value"><%=@sale_trend.present? ? @sale_trend.chance_money : EducodeSales::SaleTrend.sum(:chance_money)%>万</h1>
24
- <div id="chance_money_field" class="layui-hide">
25
- <input type="text" name="chance_money" autocomplete="off"
26
- class="layui-input" id="chance_money">
27
- </div>
28
- </div>
1
+ <div class="layui-tab" lay-filter="sale_trend_tab">
2
+ <ul class="layui-tab-title">
3
+ <li class="layui-this">年度统计</li>
4
+ <li class="">商机跟进数</li>
5
+ <li class="">销售额分析</li>
6
+ <li class="">商机区域分布</li>
7
+ <li class="">销售人员跟进分析</li>
8
+ </ul>
9
+ <div class="layui-tab-content">
10
+ <div class="layui-tab-item layui-show">
11
+ <form class="layui-form" action="">
12
+ <div class="welcome">
13
+ <div class="content-body" style="padding: 15px;">
14
+ <div class="m-b-10">
15
+ <i class="fa fa-warning icon"></i>年度
16
+ <div class="layui-input-inline">
17
+ <%= select_tag "years", options_for_select(@years, @year), {'lay-filter': 'year'} %>
29
18
  </div>
30
19
  </div>
31
- </div>
32
- <div class="layui-col-xs3">
33
- <div class="panel layui-bg-number">
34
- <div class="panel-body">
35
- <div class="panel-title">
36
- <% if can? :sale_trends, EducodeSales::SaleTrend %>
37
- <span class="layui-icon layui-icon-edit pull-right" id="ballot_money_edit"></span>
38
- <% end %>
39
- <h5>中标目标</h5>
40
- </div>
41
- <div class="panel-content y-t-10">
42
- <h1 class="no-margins" id="ballot_money_value"><%=@sale_trend.present? ? @sale_trend.ballot_money : EducodeSales::SaleTrend.sum(:ballot_money)%>万</h1>
43
- <div id="ballot_money_field" class="layui-hide">
44
- <input type="text" name="ballot_money" autocomplete="off" class="layui-input" id="ballot_money">
20
+ <div class="layui-card-bodys">
21
+ <div class="">
22
+ <div class="layui-row layui-col-space30">
23
+ <div class="layui-col-xs3">
24
+ <div class="panel layui-bg-number">
25
+ <div class="panel-body">
26
+ <div class="panel-title">
27
+ <% if can? :sale_trends, EducodeSales::SaleTrend %>
28
+ <span class="layui-icon layui-icon-edit pull-right" id="chance_money_edit"></span>
29
+ <% end %>
30
+ <h5>商机目标</h5>
31
+ </div>
32
+ <div class="panel-content y-t-10">
33
+ <h1 class="no-margins" id="chance_money_value"><%=@sale_trend.present? ? @sale_trend.chance_money : EducodeSales::SaleTrend.sum(:chance_money)%>万</h1>
34
+ <div id="chance_money_field" class="layui-hide">
35
+ <input type="text" name="chance_money" autocomplete="off"
36
+ class="layui-input" id="chance_money">
37
+ </div>
38
+ </div>
39
+ </div>
45
40
  </div>
46
41
  </div>
47
- </div>
48
- </div>
49
- </div>
50
- <div class="layui-col-xs3">
51
- <div class="panel layui-bg-number">
52
- <div class="panel-body">
53
- <div class="panel-title">
54
- <% if can? :sale_trends, EducodeSales::SaleTrend %>
55
- <span class="layui-icon layui-icon-edit pull-right" id="sign_money_edit"></span>
56
- <% end %>
57
- <h5>签单目标</h5>
58
- </div>
59
- <div class="panel-content y-t-10">
60
- <h1 class="no-margins" id="sign_money_value"><%=@sale_trend.present? ? @sale_trend.sign_money : EducodeSales::SaleTrend.sum(:sign_money)%>万</h1>
61
- <div id="sign_money_field" class="layui-hide">
62
- <input type="text" name="sign_money" autocomplete="off" class="layui-input" id="sign_money">
63
- </div>
42
+ <div class="layui-col-xs3">
43
+ <div class="panel layui-bg-number">
44
+ <div class="panel-body">
45
+ <div class="panel-title">
46
+ <% if can? :sale_trends, EducodeSales::SaleTrend %>
47
+ <span class="layui-icon layui-icon-edit pull-right" id="ballot_money_edit"></span>
48
+ <% end %>
49
+ <h5>中标目标</h5>
50
+ </div>
51
+ <div class="panel-content y-t-10">
52
+ <h1 class="no-margins" id="ballot_money_value"><%=@sale_trend.present? ? @sale_trend.ballot_money : EducodeSales::SaleTrend.sum(:ballot_money)%>万</h1>
53
+ <div id="ballot_money_field" class="layui-hide">
54
+ <input type="text" name="ballot_money" autocomplete="off" class="layui-input" id="ballot_money">
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
64
59
  </div>
65
- </div>
66
- </div>
67
- </div>
68
- <div class="layui-col-xs3" >
69
- <div class="panel layui-bg-number">
70
- <div class="panel-body">
71
- <div class="panel-title">
72
- <% if can? :sale_trends, EducodeSales::SaleTrend %>
73
- <span class="layui-icon layui-icon-edit pull-right" id="returned_money_edit"></span>
74
- <% end %>
75
- <h5>回款目标</h5>
60
+ <div class="layui-col-xs3">
61
+ <div class="panel layui-bg-number">
62
+ <div class="panel-body">
63
+ <div class="panel-title">
64
+ <% if can? :sale_trends, EducodeSales::SaleTrend %>
65
+ <span class="layui-icon layui-icon-edit pull-right" id="sign_money_edit"></span>
66
+ <% end %>
67
+ <h5>签单目标</h5>
68
+ </div>
69
+ <div class="panel-content y-t-10">
70
+ <h1 class="no-margins" id="sign_money_value"><%=@sale_trend.present? ? @sale_trend.sign_money : EducodeSales::SaleTrend.sum(:sign_money)%>万</h1>
71
+ <div id="sign_money_field" class="layui-hide">
72
+ <input type="text" name="sign_money" autocomplete="off" class="layui-input" id="sign_money">
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
76
77
  </div>
77
- <div class="panel-content y-t-10">
78
- <h1 class="no-margins" id="returned_money_value"><%=@sale_trend.present? ? @sale_trend.returned_money : EducodeSales::SaleTrend.sum(:returned_money)%>万</h1>
79
- <div id="returned_money_field" class="layui-hide">
80
- <input type="text" name="returned_money" autocomplete="off" class="layui-input" id="returned_money">
78
+ <div class="layui-col-xs3" >
79
+ <div class="panel layui-bg-number">
80
+ <div class="panel-body">
81
+ <div class="panel-title">
82
+ <% if can? :sale_trends, EducodeSales::SaleTrend %>
83
+ <span class="layui-icon layui-icon-edit pull-right" id="returned_money_edit"></span>
84
+ <% end %>
85
+ <h5>回款目标</h5>
86
+ </div>
87
+ <div class="panel-content y-t-10">
88
+ <h1 class="no-margins" id="returned_money_value"><%=@sale_trend.present? ? @sale_trend.returned_money : EducodeSales::SaleTrend.sum(:returned_money)%>万</h1>
89
+ <div id="returned_money_field" class="layui-hide">
90
+ <input type="text" name="returned_money" autocomplete="off" class="layui-input" id="returned_money">
91
+ </div>
92
+ </div>
93
+ </div>
81
94
  </div>
82
95
  </div>
83
- </div>
84
- </div>
85
- </div>
86
96
 
87
- <div class="layui-col-xs3">
88
- <div class="panel layui-bg-number">
89
- <div class="panel-body">
90
- <div class="panel-title">
91
- <h5>现有商机<a href="/missions/businesses?name=(销售态势-<%=@year %>-现有商机)" style="color: #0000FF;float: right">查看商机</a></h5>
92
- </div>
93
- <div class="panel-content y-t-10">
94
- <h1 class="no-margins"><%= @business_amount %>万</h1>
97
+ <div class="layui-col-xs3">
98
+ <div class="panel layui-bg-number">
99
+ <div class="panel-body">
100
+ <div class="panel-title">
101
+ <h5>现有商机<a href="/missions/businesses?name=(销售态势-<%=@year %>-现有商机)" style="color: #0000FF;float: right">查看商机</a></h5>
102
+ </div>
103
+ <div class="panel-content y-t-10">
104
+ <h1 class="no-margins"><%= @business_amount.round(2) %>万</h1>
105
+ </div>
106
+ </div>
107
+ </div>
95
108
  </div>
96
- </div>
97
- </div>
98
- </div>
99
109
 
100
- <div class="layui-col-xs3">
101
- <div class="panel layui-bg-number">
102
- <div class="panel-body">
103
- <div class="panel-title">
104
- <h5>已中标(总额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已中标商机)" style="color: #0000FF;float: right">查看商机</a></h5>
105
- </div>
106
- <div class="panel-content y-t-10">
107
- <h1 class="no-margins"><%= @goal_amount %>万</h1>
110
+ <div class="layui-col-xs3">
111
+ <div class="panel layui-bg-number">
112
+ <div class="panel-body">
113
+ <div class="panel-title">
114
+ <h5>已中标(总额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已中标商机)" style="color: #0000FF;float: right">查看商机</a></h5>
115
+ </div>
116
+ <div class="panel-content y-t-10">
117
+ <h1 class="no-margins"><%= @goal_amount %>万</h1>
118
+ </div>
119
+ </div>
120
+ </div>
108
121
  </div>
109
- </div>
110
- </div>
111
- </div>
112
122
 
113
- <div class="layui-col-xs3">
114
- <div class="panel layui-bg-number">
115
- <div class="panel-body">
116
- <div class="panel-title">
117
- <h5>已签单(总额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已签单商机)" style="color: #0000FF;float: right">查看商机</a></h5>
118
- </div>
119
- <div class="panel-content y-t-10">
120
- <h1 class="no-margins"><%= @service_amount %>万</h1>
123
+ <div class="layui-col-xs3">
124
+ <div class="panel layui-bg-number">
125
+ <div class="panel-body">
126
+ <div class="panel-title">
127
+ <h5>已签单(总额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已签单商机)" style="color: #0000FF;float: right">查看商机</a></h5>
128
+ </div>
129
+ <div class="panel-content y-t-10">
130
+ <h1 class="no-margins"><%= @service_amount %>万</h1>
131
+ </div>
132
+ </div>
133
+ </div>
121
134
  </div>
122
- </div>
123
- </div>
124
- </div>
125
135
 
126
- <div class="layui-col-xs3">
127
- <div class="panel layui-bg-number">
128
- <div class="panel-body">
129
- <div class="panel-title">
130
- <h5>已回款<a href="/missions/businesses?name=(销售态势-<%=@year %>-已回款商机)" style="color: #0000FF;float: right">查看商机</a></h5>
131
- </div>
132
- <div class="panel-content y-t-10">
133
- <h1 class="no-margins"><%= @return_amount %>万</h1>
136
+ <div class="layui-col-xs3">
137
+ <div class="panel layui-bg-number">
138
+ <div class="panel-body">
139
+ <div class="panel-title">
140
+ <h5>已回款<a href="/missions/businesses?name=(销售态势-<%=@year %>-已回款商机)" style="color: #0000FF;float: right">查看商机</a></h5>
141
+ </div>
142
+ <div class="panel-content y-t-10">
143
+ <h1 class="no-margins"><%= @return_amount %>万</h1>
144
+ </div>
145
+ </div>
146
+ </div>
134
147
  </div>
135
- </div>
136
- </div>
137
- </div>
138
148
 
139
- <div class="layui-col-xs3">
140
- <div class="panel layui-bg-number">
141
- <div class="panel-body">
142
- <div class="panel-title">
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
- </div>
145
- <div class="panel-content y-t-10">
146
- <h1 class="no-margins"><%= @a_amount %>万</h1>
147
- </div>
148
- </div>
149
- </div>
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>
149
+ <div class="layui-col-xs3">
150
+ <div class="panel layui-bg-number">
151
+ <div class="panel-body">
152
+ <div class="panel-title">
153
+ <h5>A类商机<a href="/missions/businesses?clazz_id=<%=EducodeSales::Common.find_by(extras: EducodeSales::Common::ATYPE)&.id %>" style="color: #0000FF;float: right">查看商机</a></h5>
154
+ </div>
155
+ <div class="panel-content y-t-10">
156
+ <h1 class="no-margins"><%= @a_amount %>万</h1>
157
+ </div>
158
+ </div>
159
+ </div>
156
160
  </div>
157
- <div class="panel-content y-t-10">
158
- <h1 class="no-margins"><%= @actual_goal_amount %>万</h1>
161
+ <div class="layui-col-xs3">
162
+ <div class="panel layui-bg-number">
163
+ <div class="panel-body">
164
+ <div class="panel-title">
165
+ <h5>已中标(合同额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已中标商机)" style="color: #0000FF;float: right">查看商机</a></h5>
166
+ </div>
167
+ <div class="panel-content y-t-10">
168
+ <h1 class="no-margins"><%= @actual_goal_amount %>万</h1>
169
+ </div>
170
+ </div>
171
+ </div>
159
172
  </div>
160
- </div>
161
- </div>
162
- </div>
163
173
 
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>
174
+ <div class="layui-col-xs3">
175
+ <div class="panel layui-bg-number">
176
+ <div class="panel-body">
177
+ <div class="panel-title">
178
+ <h5>已签单(合同额)<a href="/missions/businesses?name=(销售态势-<%=@year %>-已签单商机)" style="color: #0000FF;float: right">查看商机</a></h5>
179
+ </div>
180
+ <div class="panel-content y-t-10">
181
+ <h1 class="no-margins"><%= @actual_service_amount %>万</h1>
182
+ </div>
183
+ </div>
184
+ </div>
172
185
  </div>
173
- </div>
174
- </div>
175
- </div>
176
186
 
177
- <div class="layui-row layui-col-space30" >
178
- <div class="layui-col-xs3">
179
- <div class="panel layui-bg-number">
180
- <div class="panel-body">
181
- <div class="panel-title">
182
- <h5>B类商机<a href="/missions/businesses?clazz_id=<%=EducodeSales::Common.find_by(extras: EducodeSales::Common::BTYPE)&.id %>" style="color: #0000FF;float: right">查看商机</a></h5>
183
- </div>
184
- <div class="panel-content y-t-10">
185
- <h1 class="no-margins"><%= @b_amount %>万</h1>
186
- </div>
187
+ <div class="layui-col-xs3">
188
+ <div class="panel layui-bg-number">
189
+ <div class="panel-body">
190
+ <div class="panel-title">
191
+ <h5>B类商机<a href="/missions/businesses?clazz_id=<%=EducodeSales::Common.find_by(extras: EducodeSales::Common::BTYPE)&.id %>" style="color: #0000FF;float: right">查看商机</a></h5>
192
+ </div>
193
+ <div class="panel-content y-t-10">
194
+ <h1 class="no-margins"><%= @b_amount %>万</h1>
195
+ </div>
196
+ </div>
197
+ </div>
198
+ </div>
187
199
  </div>
188
200
  </div>
189
201
  </div>
190
202
  </div>
191
- </div>
192
- </div>
193
- </div>
194
- </div>
195
- </div>
196
- </form>
197
- <br>
198
- <div class="" id="商机跟进数">
199
- <ul class="layui-tab-title">
200
- <li class="layui-this">商机跟进数</li>
201
- </ul>
202
- <div class="" style="padding-right: 50px">
203
- <div class=" layui-show " style="padding-left: 20px">
204
- <div style="margin: 10px 10px 10px 10px">
205
- <form class="layui-form layui-form-pane" lay-filter="search_form">
206
- <div class="layui-form-item">
207
- <div class="layui-inline m-t-10">
208
- <label class="layui-form-label">视图</label>
209
- <div class="layui-input-inline">
210
- <%= select_tag "follow_count_range", options_for_select([['按天','day'],['按周','week'],['按月','month'],['按年','year']],params[:follow_count_range] || 'week'), {'lay-filter': 'follow_count'}%>
211
- </div>
212
- </div>
213
- <div class="layui-inline">
214
- <label class="layui-form-label">时间范围</label>
215
- <div class="layui-input-inline">
216
- <input type="text" class="layui-input month layui-hide" id="date_month" name="date_month" placeholder=" - " value="<%=params[:date_month] %>" autocomplete="off" >
217
- <input type="text" class="layui-input year layui-hide" id="date_year" name="date_year" placeholder=" - " value="<%=params[:date_year] %>" autocomplete="off">
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) %>" autocomplete="off">
219
- <input type="text" class="layui-input day layui-hide" id="date" name="date" placeholder=" - " value="<%=params[:date] %>" autocomplete="off">
220
- </div>
221
- </div>
222
- <div class="layui-inline">
223
- <button type="button" id="search_bt" class=" follow_count_bt layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">确定
224
- </button>
225
- </div>
226
- </div>
227
- </form>
228
- </div>
229
- <canvas id="myChart" width="960" height="200"></canvas>
230
- </div>
231
- </div>
232
- </div>
233
- <br>
234
- <br>
235
- <div class=" " id="销售额分析" lay-filter="test1">
236
- <ul class="layui-tab-title">
237
- <li class="layui-this">销售额分析</li>
238
- </ul>
239
- <div class="" style="padding-right: 50px">
240
- <div class=" layui-show" style="padding-left: 20px">
241
- <div style="margin: 10px 10px 10px 10px">
242
- <form class="layui-form layui-form-pane" lay-filter="search_form">
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>
250
- <div class="layui-inline m-t-10">
251
- <label class="layui-form-label">视图</label>
252
- <div class="layui-input-inline">
253
- <%= select_tag "goal_count_range", options_for_select([['按月','month'],['按年','year']],params[:goal_count_range]), {'lay-filter': 'goal_count'}%>
254
- </div>
255
- </div>
256
- <div class="layui-inline">
257
- <label class="layui-form-label">时间范围</label>
258
- <div class="layui-input-inline">
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") %>" autocomplete="off">
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] %>" autocomplete="off">
261
- </div>
262
- </div>
263
- <div class="layui-inline">
264
- <button type="button" id="search_bt" class="goal_count_bt layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">确定
265
- </button>
266
- </div>
267
203
  </div>
268
204
  </form>
269
- </div>
270
- <canvas id="myChart2" width="960" height="200"></canvas>
271
205
  </div>
272
-
273
- </div>
274
- </div>
275
- <br>
276
- <br>
277
- <div class=" " id="销售额分析" lay-filter="test1">
278
- <ul class="layui-tab-title">
279
- <li class="layui-this">商机区域分布</li>
280
- </ul>
281
- <div class="" style="padding-right: 50px">
282
- <div class=" layui-show" style="padding-left: 20px">
283
- <div style="margin: 10px 10px 10px 10px">
284
- <form class="layui-form layui-form-pane" lay-filter="search_form">
285
- <div class="layui-form-item">
286
- <div class="layui-inline m-t-10">
287
- <label class="layui-form-label">维度</label>
288
- <div class="layui-input-inline">
289
- <%= select_tag "business_count_type", options_for_select([['按商机总额统计','money'],['按商机数量统计','count']],params[:goal_count_range]), {'lay-filter': 'goal_count'}%>
290
- </div>
291
- </div>
292
- <div class="layui-inline m-t-10">
293
- <label class="layui-form-label">商机类型</label>
294
- <div class="layui-input-inline">
295
- <%= select_tag "business_type", options_for_select(EducodeSales::Common.where(clazz: 'business_type').where.not(extras: "x_class").pluck(:name, :id), params[:clazz_id]), { 'lay-filter': 'clazz_id', include_blank: true } %>
296
- </div>
297
- </div>
298
- <div class="layui-inline">
299
- <button type="button" id="search_bt" class="business_bt layui-btn layui-btn-primary" lay-submit lay-filter="business_chart">确定
300
- </button>
301
- </div>
302
- </div>
303
- </form>
304
- </div>
305
- <canvas id="myChart3" width="960" height="200"></canvas>
206
+ <div class="layui-tab-item">
207
+ <div id="page_2"></div>
306
208
  </div>
307
209
 
308
- </div>
309
- </div>
310
- <div class=" " id="销售人员跟进分析" lay-filter="test1">
311
- <ul class="layui-tab-title">
312
- <li class="layui-this">销售人员跟进分析</li>
313
- </ul>
314
- <div class="" style="padding-right: 50px">
315
- <div class=" layui-show" style="padding-left: 20px">
316
- <div style="margin: 10px 10px 10px 10px">
317
- <form class="layui-form layui-form-pane" lay-filter="search_form">
318
- <div class="layui-form-item">
319
- <div class="layui-inline m-t-10">
320
- <label class="layui-form-label">维度</label>
321
- <div class="layui-input-inline">
322
- <%= select_tag "customer_count_type", options_for_select([['按跟进客户数统计','money'],['按跟进客户次数统计','count']],params[:goal_count_range]), {'lay-filter': 'goal_count'}%>
323
- </div>
324
- </div>
325
- <div class="layui-inline m-t-10">
326
- <label class="layui-form-label">时间范围</label>
327
- <div class="layui-input-inline">
328
- <% options = [['上周','last_week'],['本周','this_week'],['上月','last_month'],['本月','this_month'],['去年','last_year'],['今年','this_year'],['全部','all'],['自定义','diy']]%>
329
- <%= select_tag "customer_time_range", options_for_select(options,'this_year'), { 'lay-filter': 'customer_time_range'} %>
330
- </div>
331
- </div>
332
- <div class="layui-inline m-t-10 layui-hide diy_range" id="diy_range">
333
- <label class="layui-form-label">自定义范围</label>
334
- <div class="layui-input-inline">
335
- <input type="text" class="layui-input" id="customer_date" name="customer_date" placeholder=" - " autocomplete="off">
336
- </div>
337
- </div>
338
- <div class="layui-inline">
339
- <button type="button" id="search_bt" class="customer_bt layui-btn layui-btn-primary" lay-submit lay-filter="customer_chart">确定
340
- </button>
341
- </div>
342
- </div>
343
- </form>
344
- </div>
345
- <canvas id="myChart4" width="960" height="200"></canvas>
346
- </div>
210
+ <div class="layui-tab-item">
211
+ <div id="page_3"></div>
212
+ </div>
347
213
 
214
+ <div class="layui-tab-item">
215
+ <div id="page_4"></div>
216
+ </div>
217
+ <div class="layui-tab-item">
218
+ <div id="page_5"></div>
219
+ </div>
348
220
  </div>
349
221
  </div>
222
+
223
+
350
224
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/chart.js@2.9.1/dist/Chart.min.css">
351
225
  <script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.1/dist/Chart.min.js"></script>
352
226
  <script>
353
- follow_type = "<%=@follow_count_range %>"
354
- goal_type = "<%=@goal_count_range %>"
355
- follow_flag = <%=params[:follow_count_range].present? %>
356
- if(follow_flag){
357
- window.location.href = "#商机跟进数"
358
- }
359
-
360
- goal_flag = <%=params[:goal_count_range].present? %>
361
- if(goal_flag){
362
- window.location.href = "#销售额分析"
363
- }
364
- layui.use(['form', 'jquery', 'request'], function () {
227
+ layui.use(['form', 'jquery', 'request', 'element'], function () {
365
228
  var $ = layui.jquery,
366
229
  form = layui.form,
367
230
  request = layui.request;
368
231
  var year = "<%= @year %>";
369
232
  var element = layui.element;
370
233
  laydate = layui.laydate;
371
-
372
- form.on('select(customer_time_range)', function(data){
373
- const value = data.value;
374
- if(value == "diy"){
375
- $(".diy_range").removeClass("layui-hide")
376
- }else {
377
- $(".diy_range").addClass('layui-hide')
234
+ element.render();
235
+ element.on('tab(sale_trend_tab)', function(data) {
236
+ if (data.index == 1 && $("#tab_2").length == 0) {
237
+ loadPage('/missions/sale_trends/business_followup_analysis')
238
+ } else if (data.index == 2 && $("#tab_3").length == 0 ) {
239
+ loadPage('/missions/sale_trends/sales_analysis')
240
+ } else if (data.index == 3 && $("#tab_4").length == 0 ) {
241
+ loadPage('/missions/sale_trends/business_area')
242
+ } else if (data.index == 4 && $("#tab_5").length == 0 ) {
243
+ loadPage('/missions/sale_trends/sales_followup_analysis')
244
+ }
245
+ });
246
+
247
+
248
+ function loadPage(url) {
249
+ var layer_index = layer.load(0, {shade: [0.1, '#fff']});
250
+ Rails.ajax({
251
+ url: url,
252
+ type: 'GET',
253
+ dataType: "script",
254
+ success: function (res) {
255
+ layer.close(layer_index);
378
256
  }
379
- })
380
-
381
- if(follow_type == "day"){
382
- $(".year").addClass('layui-hide')
383
- $(".month").addClass('layui-hide')
384
- $(".week").addClass('layui-hide')
385
- $(".day").removeClass('layui-hide')
386
- }else if(follow_type == "month"){
387
- $(".year").addClass('layui-hide')
388
- $(".week").addClass('layui-hide')
389
- $(".month").removeClass('layui-hide')
390
- $(".day").addClass('layui-hide')
391
- }else if(follow_type == "week"){
392
- $(".year").addClass('layui-hide')
393
- $(".day").addClass('layui-hide')
394
- $(".week").removeClass('layui-hide')
395
- $(".month").addClass('layui-hide')
396
- }else {
397
- $(".year").removeClass('layui-hide')
398
- $(".month").addClass('layui-hide')
399
- $(".day").addClass('layui-hide')
400
- $(".week").addClass('layui-hide')
401
- }
402
-
403
- if(goal_type == "year"){
404
- $(".goal_year").removeClass('layui-hide')
405
- $(".goal_month").addClass('layui-hide')
406
- }else{
407
- $(".goal_year").addClass('layui-hide')
408
- $(".goal_month").removeClass('layui-hide')
257
+ });
409
258
  }
410
259
 
411
260
  function editForm(el) {
@@ -438,194 +287,14 @@
438
287
  })
439
288
  }
440
289
 
441
- // 时间选择器
442
- laydate.render({
443
- elem: '#date',
444
- range: true
445
- });
446
- laydate.render({
447
- elem: '#customer_date',
448
- range: true
449
- });
450
- laydate.render({
451
- elem: '#date_week',
452
- range: true
453
- });
454
- laydate.render({
455
- type: 'month',
456
- elem: '#date_month',
457
- range: true
458
- });
459
- laydate.render({
460
- type: 'year',
461
- elem: '#date_year',
462
- range: true
463
- });
464
- laydate.render({
465
- type: 'year',
466
- elem: '#goal_date_year',
467
- range: true
468
- });
469
- laydate.render({
470
- type: 'month',
471
- elem: '#goal_date_month',
472
- range: true
473
- });
474
-
475
-
476
290
  form.on('select(year)', function(data){
477
291
  year = data.value
478
292
  window.location.href = "/missions/sale_trends/trends?year=" + data.value
479
293
  })
480
- form.on('select(follow_count)', function(data){
481
- const value = data.value;
482
- if(value == "month"){
483
- $(".year").addClass('layui-hide')
484
- $(".day").addClass('layui-hide')
485
- $(".week").addClass('layui-hide')
486
- $(".month").removeClass('layui-hide')
487
- }else if(value == "year"){
488
- $(".month").addClass('layui-hide')
489
- $(".day").addClass('layui-hide')
490
- $(".week").addClass('layui-hide')
491
- $(".year").removeClass('layui-hide')
492
- }else if(value == "week"){
493
- $(".month").addClass('layui-hide')
494
- $(".day").addClass('layui-hide')
495
- $(".week").removeClass('layui-hide')
496
- $(".year").addClass('layui-hide')
497
- }else {
498
- $(".month").addClass('layui-hide')
499
- $(".year").addClass('layui-hide')
500
- $(".day").removeClass('layui-hide')
501
- $(".week").addClass('layui-hide')
502
-
503
- }
504
- })
505
-
506
- form.on('select(goal_count)', function(data){
507
- const value = data.value;
508
- if(value == "month"){
509
- $(".goal_year").addClass('layui-hide')
510
- $(".goal_month").removeClass('layui-hide')
511
- }else {
512
- $(".goal_month").addClass('layui-hide')
513
- $(".goal_year").removeClass('layui-hide')
514
- }
515
- })
516
-
294
+
517
295
  editForm("chance_money");
518
296
  editForm("ballot_money");
519
297
  editForm("sign_money");
520
298
  editForm("returned_money");
521
-
522
- element.on('tab(test1)', function(){
523
- window.location.href = "#销售额分析"
524
- });
525
-
526
- var ctx = document.getElementById('myChart');
527
- var myChart = new Chart(ctx, {
528
- type: 'line',
529
- data: <%=raw @follow_count_data.to_json %>,
530
- options: {
531
- elements: {
532
- line: {
533
- tension: 0
534
- }
535
- }
536
- }
537
- });
538
-
539
-
540
- var opt = {
541
- events: false,
542
- tooltips: {
543
- enabled: false
544
- },
545
- hover: {
546
- animationDuration: 0
547
- },
548
- animation: {
549
- duration: 1,
550
- onComplete: function () {
551
- var chartInstance = this.chart,
552
- ctx = chartInstance.ctx;
553
- ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
554
- ctx.textAlign = 'center';
555
- ctx.textBaseline = 'bottom';
556
-
557
- this.data.datasets.forEach(function (dataset, i) {
558
- var meta = chartInstance.controller.getDatasetMeta(i);
559
- meta.data.forEach(function (bar, index) {
560
- var data = dataset.data[index];
561
- ctx.fillText(data, bar._model.x, bar._model.y - 5);
562
- });
563
- });
564
- }
565
- }
566
- };
567
-
568
-
569
- var ctx = document.getElementById('myChart2');
570
- var myChart2 = new Chart(ctx, {
571
- type: 'bar',
572
- data: <%=raw @goal_count_data.to_json %>,
573
- options: opt
574
- });
575
-
576
- var ctx = document.getElementById('myChart3');
577
- var myChart3 = new Chart(ctx, {
578
- type: 'bar',
579
- data: <%=raw @business_data.to_json %>,
580
- options: opt
581
- });
582
-
583
- var ctx = document.getElementById('myChart4');
584
- var myChart4 = new Chart(ctx, {
585
- type: 'bar',
586
- data: <%=raw @customer_data.to_json %>,
587
- options: opt
588
- });
589
-
590
- $(document).ready(function () {
591
- $(".follow_count_bt").click(function () {
592
- layer.load(0, {});
593
- $.get('/missions/sale_trends/trends.json?follow_count_range=' + $("#follow_count_range").val() + '&date_month=' + $("#date_month").val() + '&date_week=' + $("#date_week").val() + '&date_year=' + $("#date_year").val() + '&date=' + $("#date").val()).done(function(res) {
594
- layer.closeAll('loading');
595
- var data1 = res.data1;
596
- myChart.data = data1
597
- myChart.update()
598
- });
599
- });
600
- $(".goal_count_bt").click(function () {
601
- layer.load(0, {});
602
- $.get('/missions/sale_trends/trends.json?count_type=' + $("#count_type").val() + '&goal_count_range=' + $("#goal_count_range").val() + '&goal_date_month=' + $("#goal_date_month").val() + '&goal_date_year=' + $("#goal_date_year").val()).done(function(res) {
603
- layer.closeAll('loading');
604
- var data2 = res.data2;
605
- myChart2.data = data2
606
- myChart2.update()
607
-
608
- });
609
- });
610
- $(".business_bt").click(function () {
611
- layer.load(0, {});
612
- $.get('/missions/sale_trends/trends.json?business_count_type=' + $("#business_count_type").val() + '&business_type=' + $("#business_type").val()).done(function(res) {
613
- layer.closeAll('loading');
614
- var data3 = res.data3;
615
- myChart3.data = data3
616
- myChart3.update()
617
- });
618
- });
619
- $(".customer_bt").click(function () {
620
- layer.load(0, {});
621
- $.get('/missions/sale_trends/trends.json?customer_count_type=' + $("#customer_count_type").val() + '&customer_time_range=' + $("#customer_time_range").val() + '&customer_date=' + $("#customer_date").val()).done(function(res) {
622
- layer.closeAll('loading');
623
- var data4 = res.data4;
624
- myChart4.data = data4
625
- myChart4.update()
626
- });
627
- });
628
- });
629
-
630
299
  })
631
300
  </script>