educode_sales 0.5.4 → 0.5.8

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/businesses_controller.rb +20 -1
  3. data/app/controllers/educode_sales/follow_ups_controller.rb +58 -1
  4. data/app/controllers/educode_sales/home_controller.rb +18 -2
  5. data/app/controllers/educode_sales/sale_trends_controller.rb +119 -84
  6. data/app/controllers/educode_sales/sales_controller.rb +3 -0
  7. data/app/controllers/educode_sales/teachers_controller.rb +41 -14
  8. data/app/controllers/educode_sales/upload_files_controller.rb +3 -3
  9. data/app/models/educode_sales/teacher.rb +2 -1
  10. data/app/models/educode_sales/teacher_assign_follow.rb +6 -0
  11. data/app/views/educode_sales/activities/index.html.erb +4 -5
  12. data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
  13. data/app/views/educode_sales/businesses/_follows.html.erb +255 -0
  14. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +69 -6
  15. data/app/views/educode_sales/businesses/file.html.erb +2 -4
  16. data/app/views/educode_sales/businesses/index.html.erb +161 -66
  17. data/app/views/educode_sales/businesses/index.json.jbuilder +2 -1
  18. data/app/views/educode_sales/businesses/new_follow_record.html.erb +70 -6
  19. data/app/views/educode_sales/businesses/show_follow.html.erb +9 -9
  20. data/app/views/educode_sales/businesses/show_follow_record.html.erb +8 -0
  21. data/app/views/educode_sales/businesses/time_line.html.erb +1 -1
  22. data/app/views/educode_sales/follow_ups/index.json.jbuilder +20 -0
  23. data/app/views/educode_sales/home/sales_place.json.jbuilder +9 -0
  24. data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +6 -0
  25. data/app/views/educode_sales/operation_plans/_monthly.html.erb +2 -0
  26. data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +6 -0
  27. data/app/views/educode_sales/operation_plans/_weekly.html.erb +2 -0
  28. data/app/views/educode_sales/places/index.html.erb +14 -4
  29. data/app/views/educode_sales/places/index.json.jbuilder +7 -1
  30. data/app/views/educode_sales/plans/_monthPlan.html.erb +5 -0
  31. data/app/views/educode_sales/plans/_monthly.html.erb +1 -0
  32. data/app/views/educode_sales/plans/_weekPlan.html.erb +5 -0
  33. data/app/views/educode_sales/plans/_weekly.html.erb +1 -0
  34. data/app/views/educode_sales/recycles/index.html.erb +1 -1
  35. data/app/views/educode_sales/sale_trends/trends.html.erb +54 -5
  36. data/app/views/educode_sales/sales/index.html.erb +18 -3
  37. data/app/views/educode_sales/sales/index.json.jbuilder +27 -14
  38. data/app/views/educode_sales/sales/operations.html.erb +4 -1
  39. data/app/views/educode_sales/teachers/course_list.json.jbuilder +1 -1
  40. data/app/views/educode_sales/teachers/edit.html.erb +53 -7
  41. data/app/views/educode_sales/teachers/index.html.erb +42 -3
  42. data/app/views/educode_sales/teachers/index.json.jbuilder +4 -1
  43. data/app/views/educode_sales/teachers/new.html.erb +55 -17
  44. data/config/routes.rb +1 -0
  45. data/db/migrate/20211201023750_create_educode_sales_teacher_assign_follows.rb +11 -0
  46. data/db/migrate/20211206054756_add_year_to_follow_ups.rb +5 -0
  47. data/lib/educode_sales/version.rb +1 -1
  48. metadata +8 -2
@@ -1,66 +1,80 @@
1
- <div class="min-height-table">
2
- <div style="margin: 10px 10px 10px 10px">
3
- <form class="layui-form layui-form-pane" lay-filter="search_form">
4
- <div class="layui-form-item">
5
- <div class="layui-inline">
6
- <label class="layui-form-label">商机名称</label>
7
- <div class="layui-input-inline">
8
- <input type="text" name="name" autocomplete="off" class="layui-input" value="<%=params[:name] %>">
9
- </div>
10
- </div>
11
- <div class="layui-inline">
12
- <label class="layui-form-label">单位</label>
13
- <div class="layui-input-inline">
14
- <input type="text" name="department" autocomplete="off" class="layui-input">
15
- </div>
16
- </div>
17
- <div class="layui-inline">
18
- <label class="layui-form-label">销售人员</label>
19
- <div class="layui-input-inline">
20
- <%= select_tag "staff_id", options_for_select(@staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true } %>
21
- </div>
22
- </div>
23
- <div class="layui-inline">
24
- <label class="layui-form-label">项目类型</label>
25
- <div class="layui-input-inline">
26
- <%= select_tag "business_type", options_for_select(EducodeSales::Common.where(clazz: 'business_type').pluck(:name, :id), params[:clazz_id]), { 'lay-filter': 'clazz_id', include_blank: true } %>
27
- </div>
28
- </div>
29
- <div class="layui-inline m-t-10">
30
- <label class="layui-form-label">项目阶段</label>
31
- <div class="layui-input-inline">
32
- <%= select_tag "business_step", options_for_select(EducodeSales::Common.where(clazz: 'business_step').pluck(:name, :id)), { include_blank: true } %>
33
- </div>
34
- </div>
35
- <div class="layui-inline">
36
- <label class="layui-form-label">渠道名称</label>
37
- <div class="layui-input-inline">
38
- <%= select_tag "place_id", options_for_select(EducodeSales::Place.pluck(:name, :id)), { include_blank: true } %>
39
- </div>
40
- </div>
41
- <div class="layui-inline">
42
- <label class="layui-form-label">区域</label>
43
- <div class="layui-input-inline">
44
- <%= select_tag "area", options_for_select(EducodeSales::Common.where(clazz: 'area').pluck(:name, :id)), { include_blank: true } %>
45
- </div>
46
- </div>
47
- <div class="layui-inline">
48
- <label class="layui-form-label">起止时间</label>
49
- <div class="layui-input-inline">
50
- <input type="text" class="layui-input" id="date" name="date" placeholder=" - ">
51
- </div>
52
- </div>
53
- <div class="layui-inline">
54
- <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
55
- </button>
56
- <button type="submit" id="search_bt" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">搜索
57
- </button>
1
+ <div class="layui-tab" lay-filter="operation_tab">
2
+ <ul class="layui-tab-title">
3
+ <li class="layui-this follows_li">跟进动态</li>
4
+ <li class="businesses_list_li" >商机列表</li>
5
+ </ul>
6
+ <div class="layui-tab-content">
7
+ <div class="layui-tab-item follows_div layui-show">
8
+ <!-- 跟进动态-->
9
+ <%=render 'follows' %>
10
+ </div>
11
+ <div class="layui-tab-item businesses_list_div">
12
+ <!--商机列表-->
13
+ <div class="min-height-table">
14
+ <div style="margin: 10px 10px 10px 10px">
15
+ <form class="layui-form layui-form-pane" lay-filter="search_form">
16
+ <div class="layui-form-item">
17
+ <div class="layui-inline">
18
+ <label class="layui-form-label">商机名称</label>
19
+ <div class="layui-input-inline">
20
+ <input type="text" name="name" autocomplete="off" class="layui-input" value="<%=params[:name] %>">
21
+ </div>
22
+ </div>
23
+ <div class="layui-inline">
24
+ <label class="layui-form-label">单位</label>
25
+ <div class="layui-input-inline">
26
+ <input type="text" name="department" autocomplete="off" class="layui-input">
27
+ </div>
28
+ </div>
29
+ <div class="layui-inline">
30
+ <label class="layui-form-label">销售人员</label>
31
+ <div class="layui-input-inline">
32
+ <%= select_tag "staff_id", options_for_select(@staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true } %>
33
+ </div>
34
+ </div>
35
+ <div class="layui-inline">
36
+ <label class="layui-form-label">项目类型</label>
37
+ <div class="layui-input-inline">
38
+ <%= select_tag "business_type", options_for_select(EducodeSales::Common.where(clazz: 'business_type').pluck(:name, :id), params[:clazz_id]), { 'lay-filter': 'clazz_id', include_blank: true } %>
39
+ </div>
40
+ </div>
41
+ <div class="layui-inline">
42
+ <label class="layui-form-label">项目阶段</label>
43
+ <div class="layui-input-inline">
44
+ <%= select_tag "business_step", options_for_select(EducodeSales::Common.where(clazz: 'business_step').pluck(:name, :id)), { include_blank: true } %>
45
+ </div>
46
+ </div>
47
+ <div class="layui-inline">
48
+ <label class="layui-form-label">渠道名称</label>
49
+ <div class="layui-input-inline">
50
+ <div id="index_place" style="width: 190px;"></div>
51
+ </div>
52
+ </div>
53
+ <div class="layui-inline">
54
+ <label class="layui-form-label">区域</label>
55
+ <div class="layui-input-inline">
56
+ <%= select_tag "area", options_for_select(EducodeSales::Common.where(clazz: 'area').pluck(:name, :id)), { include_blank: true } %>
57
+ </div>
58
+ </div>
59
+ <div class="layui-inline">
60
+ <label class="layui-form-label">起止时间</label>
61
+ <div class="layui-input-inline">
62
+ <input type="text" class="layui-input" id="date" name="date" placeholder=" - ">
63
+ </div>
64
+ </div>
65
+ <div class="layui-inline">
66
+ <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
67
+ </button>
68
+ <button type="submit" id="search_bt" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">搜索
69
+ </button>
70
+ </div>
71
+ </div>
72
+ </form>
58
73
  </div>
74
+ <table class="layui-hide" id="businesses_table" lay-filter="businesses_table"></table>
59
75
  </div>
60
- </form>
76
+ </div>
61
77
  </div>
62
-
63
- <table class="layui-hide" id="businesses_table" lay-filter="businesses_table"></table>
64
78
  </div>
65
79
  <script type="text/html" id="bussinessBar">
66
80
  <div class="layui-btn-container">
@@ -109,6 +123,59 @@
109
123
  range: true
110
124
  });
111
125
 
126
+ var is_show = <%=params[:name].present? || params[:clazz_id].present? %>
127
+ if(is_show){
128
+ $('.follows_li').removeClass('layui-this');
129
+ $('.follows_div').removeClass('layui-show');
130
+ $('.businesses_list_li').addClass('layui-this');
131
+ $('.businesses_list_div').addClass('layui-show');
132
+ }
133
+
134
+ var index_place_list = xmSelect.render({
135
+ el: '#index_place',
136
+ model: {
137
+ icon: 'hidden',
138
+ label: {
139
+ type: 'text',
140
+ text: {
141
+ //左边拼接的字符
142
+ left: '',
143
+ //右边拼接的字符
144
+ right: '',
145
+ //中间的分隔符
146
+ separator: ', ',
147
+ },
148
+ }
149
+ },
150
+ remoteSearch: true,
151
+ clickClose: true,
152
+ delay: 1000,
153
+ paging: true,
154
+ radio: true,
155
+ pageRemote: true,
156
+ filterable: true,
157
+ remoteMethod: function (val, cb, show, pageIndex) {
158
+ $.ajax( '/missions/sales_place', {
159
+ method: 'get',
160
+ data: {
161
+ q: val,
162
+ page: pageIndex
163
+ },
164
+ dataType: 'json',
165
+ success: function (res) {
166
+ var data = res.data;
167
+ if (res.code == 0) {
168
+ cb(res.data, res.count);
169
+ } else {
170
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
171
+ }
172
+
173
+ }
174
+ })
175
+ }
176
+ })
177
+
178
+
112
179
  table = layui.table;
113
180
  table.render({
114
181
  elem: '#businesses_table',
@@ -128,17 +195,20 @@
128
195
  {
129
196
  field: 'name',
130
197
  width: 170,
131
- title: '名称'
198
+ title: '名称',
199
+ templet:'<div><span title="{{d.name}}">{{d.name}}</span></div>'
132
200
  },
133
201
  {
134
202
  field: 'school',
135
203
  width: 150,
136
204
  title: '单位',
205
+ templet:'<div><span title="{{d.school}}">{{d.school}}</span></div>'
137
206
  },
138
207
  {
139
208
  field: 'department',
140
209
  width: 150,
141
- title: '部门'
210
+ title: '部门',
211
+ templet:'<div><span title="{{d.department}}">{{d.department}}</span></div>'
142
212
  },
143
213
  {
144
214
  field: 'follow_ups_count',
@@ -156,7 +226,8 @@
156
226
  {
157
227
  field: 'clazz',
158
228
  width: 80,
159
- title: '类型'
229
+ title: '类型',
230
+ templet:'<div><span title="{{d.clazz}}">{{d.clazz}}</span></div>'
160
231
  },
161
232
  {
162
233
  field: 'stage',
@@ -194,6 +265,13 @@
194
265
  totalRow: true,
195
266
  sort: true
196
267
  },
268
+ {
269
+ field: 'actual_amount',
270
+ width: 100,
271
+ title: '合同额',
272
+ totalRow: true,
273
+ sort: true
274
+ },
197
275
  {
198
276
  field: 'return_money',
199
277
  width: 100,
@@ -203,8 +281,8 @@
203
281
  },
204
282
  {
205
283
  field: 'place',
206
- width: 80,
207
- title: '渠道'
284
+ width: 160,
285
+ title: '渠道',
208
286
  },
209
287
  {
210
288
  field: 'source',
@@ -396,7 +474,8 @@
396
474
 
397
475
  // 监听搜索操作
398
476
  form.on('submit(search_bussiness)', function (data) {
399
- search = data.field
477
+ data.field.place_id = index_place_list.getValue('valueStr');
478
+ search = data.field
400
479
  console.log(search);
401
480
  table.reload('businesses_table', {
402
481
  page: {
@@ -404,6 +483,15 @@
404
483
  },
405
484
  where: {q: search, sort: sort}
406
485
  }, 'data');
486
+ table.reload('teachers_table', {
487
+ page: {
488
+ curr: 1
489
+ },
490
+ where: {q: search, sort: sort}
491
+ }, 'data');
492
+ form.val('search_follows', {
493
+ name: data.field.name, department: data.field.department, staff_id: data.field.staff_id, area: data.field.area
494
+ })
407
495
 
408
496
  return false;
409
497
  });
@@ -619,4 +707,11 @@
619
707
  .layui-table-tool-temp{
620
708
  padding-right: 30px; !important;
621
709
  }
710
+ .layui-table-fixed .layui-table-body {
711
+ height: auto!important;
712
+ }
713
+ .layui-table-fixed.layui-hide {
714
+ display: block!important;
715
+ }
716
+
622
717
  </style>
@@ -10,13 +10,14 @@ json.data do
10
10
  json.follow_up_id d.last_follow_up_id
11
11
  # json.teachers_count d.follow_ups.sum(:key_people_count)
12
12
  # json.teachers_count EducodeSales::FollowUp.order(created_at: :desc).find_by(business_id: d.id).present? ? EducodeSales::FollowUp.order(created_at: :desc).find_by(business_id: d.id).key_people_count : 0
13
- json.clazz d.last_follow_up&.clazz&.name
13
+ json.clazz d.last_follow_up&.clazz&.name || ""
14
14
  json.stage d.last_follow_up&.stage&.name
15
15
  json.invitation_at d.last_follow_up&.invitation_at.to_s
16
16
  json.reception_at d.last_follow_up&.reception_at.to_s
17
17
  json.bidded_date d.last_follow_up&.bidded_date.to_s
18
18
  json.signed_date d.last_follow_up&.signed_date.to_s
19
19
  json.total_amount d.last_follow_up&.total_amount
20
+ json.actual_amount d.last_follow_up&.actual_amount
20
21
  json.return_money d.return_money
21
22
  json.place d.last_follow_up&.place&.name
22
23
  json.last_follow_person d.last_follow_up.present? ? d.last_follow_up.staff.user.real_name : EducodeSales::Staff.find(d.staff_id).user.real_name
@@ -83,10 +83,10 @@
83
83
  </div>
84
84
  </div>
85
85
  <br>
86
- <div class="layui-inline">
86
+ <div class="layui-inline new_place_select">
87
87
  <label class="layui-form-label">渠道</label>
88
- <div class="layui-input-inline">
89
- <%= select_tag "place_id", options_for_select(@places, @last_follow_up&.place_id), include_blank: true %>
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">
@@ -94,6 +94,15 @@
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>
97
+ </div>
98
+ <div class="layui-form-item">
99
+ <div class="layui-inline">
100
+ <label class="layui-form-label">所属年度</label>
101
+ <div class="layui-input-inline">
102
+ <input type="text" class="layui-input" name="year" autocomplete="off" id="year"
103
+ value="<%= @last_follow_up&.year%>"
104
+ placeholder="请选择年度"> </div>
105
+ </div>
97
106
  </div>
98
107
  <div class="layui-form-item">
99
108
  <label class="layui-form-label">指定跟进人</label>
@@ -147,6 +156,10 @@
147
156
  xmSelect = layui.xmSelect,
148
157
  $ = layui.$;
149
158
 
159
+ laydate.render({
160
+ elem: '#year',
161
+ type: 'year'
162
+ })
150
163
  laydate.render({
151
164
  elem: '#invitation_at_add'
152
165
  })
@@ -182,18 +195,63 @@
182
195
  })
183
196
  }
184
197
  })
198
+ var place_list = xmSelect.render({
199
+ el: '#place',
200
+ remoteSearch: true,
201
+ model: {
202
+ icon: 'hidden',
203
+ label: {
204
+ type: 'text',
205
+ text: {
206
+ //左边拼接的字符
207
+ left: '',
208
+ //右边拼接的字符
209
+ right: '',
210
+ //中间的分隔符
211
+ separator: ', ',
212
+ },
213
+ }
214
+ },
215
+ clickClose: true,
216
+ delay: 1000,
217
+ paging: true,
218
+ radio: true,
219
+ pageRemote: true,
220
+ filterable: true,
221
+ remoteMethod: function (val, cb, show, pageIndex) {
222
+ $.ajax( '/missions/sales_place', {
223
+ method: 'get',
224
+ data: {
225
+ q: val,
226
+ page: pageIndex
227
+ },
228
+ dataType: 'json',
229
+ success: function (res) {
230
+ var data = res.data;
231
+ if (res.code == 0) {
232
+ cb(res.data, res.count);
233
+ } else {
234
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
235
+ }
236
+
237
+ }
238
+ })
239
+ }
240
+ })
185
241
 
186
242
  sales_list.setValue(gon.sales);
243
+ place_list.setValue(gon.place);
187
244
  form.render();
188
245
 
189
246
  form.on('submit(add_follow_up)', function (data) {
190
- var assign_follow = [];
247
+ var assign_follow = [];
191
248
  sales_list.getValue().forEach(function(d) {
192
249
  assign_follow.push(d.value);
193
250
  })
194
251
  data.field.assign_follow_up = assign_follow;
195
252
  data.field.business_id = "<%= @business.id %>";
196
- request.authPost("missions/follow_ups", data.field, function (res) {
253
+ data.field.place_id = place_list.getValue('valueStr');
254
+ request.authPost("missions/follow_ups", data.field, function (res) {
197
255
  if (res.success == false) {
198
256
  layer.alert(res.msg)
199
257
  } else {
@@ -201,6 +259,7 @@
201
259
  parent.layer.close(parent.layer.getFrameIndex(window.name))
202
260
  parent.table.reload('sale_plan_follow_table')
203
261
  parent.table.reload('businesses_table')
262
+ parent.table.reload('teachers_table')
204
263
  }
205
264
  })
206
265
 
@@ -209,4 +268,9 @@
209
268
  });
210
269
 
211
270
  });
212
- </script>
271
+ </script>
272
+ <style>
273
+ .new_place_select xm-select > .xm-body{
274
+ width: 300px; !important;
275
+ }
276
+ </style>
@@ -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.id ,
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.id);
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=' + 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 +'的跟进时间线',
@@ -248,6 +248,7 @@
248
248
  layer.close(index);
249
249
  table.reload("businesses_table");
250
250
  table.reload("sale_plan_follow_table");
251
+ table.reload('teachers_table')
251
252
  })
252
253
  });
253
254
  } else if (obj.event === 'show') { // 监听添加操作
@@ -335,34 +336,33 @@
335
336
  // 未完成计划
336
337
  table.render({
337
338
  elem: '#unfinish_table',
338
- url: '/missions/businesses/' + parent.id + "/unfinish_plans",
339
+ url: '/missions/businesses/' + parent.business_id + "/unfinish_plans",
339
340
  toolbar: '#unfinish_table_tabar',
340
341
  defaultToolbar: [],
341
342
  cols: [
342
343
  [
343
344
  {
344
345
  field: 'id',
345
- width: 80,
346
+ width: 60,
346
347
  title:'序号',type: 'numbers',
347
348
  },
348
349
  {
349
350
  field: 'staff',
350
- width: 140,
351
+ width: 100,
351
352
  title: '姓名'
352
353
  },
353
354
  {
354
355
  field: 'month',
355
- width: 120,
356
+ width: 100,
356
357
  title: '月份',
357
358
  },
358
359
  {
359
360
  field: 'weekly',
360
- width: 120,
361
+ width: 100,
361
362
  title: '周次'
362
363
  },
363
364
  {
364
365
  field: 'content',
365
- width: 300,
366
366
  title: '计划内容'
367
367
  },
368
368
  {
@@ -78,6 +78,14 @@
78
78
  <%= @follow_up.divide_amount %>万
79
79
  </div>
80
80
  </div>
81
+ <div class="layui-form-item">
82
+ <div class="layui-inline">
83
+ <label class="layui-form-label">所属年度</label>
84
+ <div class="layui-input-inline">
85
+ <%= @follow_up&.year %>年
86
+ </div>
87
+ </div>
88
+ </div>
81
89
  <div class="ayui-form-item">
82
90
  <label class="layui-form-label" style="width: 85px;">指定跟进人:</label>
83
91
  <div class="layui-input-inline">
@@ -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=' + 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,20 @@
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.school d.business.department.school.name
10
+ json.created_at d.created_at.to_s
11
+ json.business d.business.name
12
+ json.business_id d.business.id
13
+ teacher_ids = d.key_person.pluck(:teacher_id)
14
+ json.key_people EducodeSales::Teacher.where(id: teacher_ids).pluck(:name).join('、')
15
+
16
+ end
17
+ end
18
+
19
+ json.code 0
20
+ json.count @follow_ups.total_count
@@ -0,0 +1,9 @@
1
+ json.data do
2
+ json.array! @places do |d|
3
+ json.value d.id
4
+ json.name d.name
5
+ end
6
+ end
7
+ json.count (@places.total_count/10 + 1)
8
+ json.code 0
9
+ json.msg "success"
@@ -79,6 +79,10 @@
79
79
  toolbar: '#monthPlanToolbar',
80
80
  totalRow:true,
81
81
  defaultToolbar: ['filter'],
82
+ initSort: {
83
+ field: 'updated_at' //排序字段,对应 cols 设定的各字段名
84
+ ,type: 'desc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
85
+ },
82
86
  cols: [
83
87
  [
84
88
  {
@@ -111,6 +115,8 @@
111
115
  field: 'content',
112
116
  width: 400,
113
117
  title: '计划内容',
118
+ templet:'<div><span title="{{d.content}}">{{d.content}}</span></div>'
119
+
114
120
  },
115
121
  {
116
122
  field: 'count',
@@ -114,6 +114,8 @@
114
114
  field: 'content',
115
115
  width: 300,
116
116
  title: '个人总结',
117
+ templet:'<div><span title="{{d.content}}">{{d.content}}</span></div>'
118
+
117
119
  },
118
120
  {
119
121
  field: 'level1_score',
@@ -80,6 +80,10 @@
80
80
  toolbar: '#weekPlanToolbar',
81
81
  totalRow:true,
82
82
  defaultToolbar: ['filter'],
83
+ initSort: {
84
+ field: 'updated_at' //排序字段,对应 cols 设定的各字段名
85
+ ,type: 'desc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
86
+ },
83
87
  cols: [
84
88
  [
85
89
  {
@@ -122,6 +126,8 @@
122
126
  field: 'content',
123
127
  width: 300,
124
128
  title: '计划内容',
129
+ templet:'<div><span title="{{d.content}}">{{d.content}}</span></div>'
130
+
125
131
  },
126
132
  {
127
133
  field: 'count',
@@ -115,6 +115,8 @@
115
115
  field: 'content',
116
116
  width: 300,
117
117
  title: '个人总结',
118
+ templet:'<div><span title="{{d.content}}">{{d.content}}</span></div>'
119
+
118
120
  },
119
121
  {
120
122
  field: 'level1_score',