educode_sales 0.5.5 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/businesses_controller.rb +2 -0
  3. data/app/controllers/educode_sales/follow_ups_controller.rb +57 -0
  4. data/app/controllers/educode_sales/home_controller.rb +11 -0
  5. data/app/controllers/educode_sales/sale_trends_controller.rb +1 -2
  6. data/app/controllers/educode_sales/teachers_controller.rb +35 -14
  7. data/app/models/educode_sales/teacher.rb +2 -1
  8. data/app/models/educode_sales/teacher_assign_follow.rb +6 -0
  9. data/app/views/educode_sales/activities/index.html.erb +4 -5
  10. data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
  11. data/app/views/educode_sales/businesses/_follows.html.erb +233 -0
  12. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +48 -4
  13. data/app/views/educode_sales/businesses/index.html.erb +130 -62
  14. data/app/views/educode_sales/businesses/new_follow_record.html.erb +49 -4
  15. data/app/views/educode_sales/businesses/show_follow.html.erb +4 -4
  16. data/app/views/educode_sales/businesses/time_line.html.erb +1 -1
  17. data/app/views/educode_sales/follow_ups/index.json.jbuilder +19 -0
  18. data/app/views/educode_sales/home/sales_place.json.jbuilder +9 -0
  19. data/app/views/educode_sales/recycles/index.html.erb +1 -1
  20. data/app/views/educode_sales/sale_trends/trends.html.erb +2 -2
  21. data/app/views/educode_sales/sales/operations.html.erb +2 -0
  22. data/app/views/educode_sales/teachers/course_list.json.jbuilder +1 -1
  23. data/app/views/educode_sales/teachers/edit.html.erb +53 -7
  24. data/app/views/educode_sales/teachers/index.html.erb +35 -1
  25. data/app/views/educode_sales/teachers/index.json.jbuilder +4 -1
  26. data/app/views/educode_sales/teachers/new.html.erb +55 -17
  27. data/config/routes.rb +1 -0
  28. data/db/migrate/20211201023750_create_educode_sales_teacher_assign_follows.rb +11 -0
  29. data/lib/educode_sales/version.rb +1 -1
  30. metadata +7 -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),params[:place_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 m-t-10">
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',
@@ -210,7 +277,7 @@
210
277
  },
211
278
  {
212
279
  field: 'place',
213
- width: 80,
280
+ width: 160,
214
281
  title: '渠道'
215
282
  },
216
283
  {
@@ -403,7 +470,8 @@
403
470
 
404
471
  // 监听搜索操作
405
472
  form.on('submit(search_bussiness)', function (data) {
406
- search = data.field
473
+ data.field.place_id = index_place_list.getValue('valueStr');
474
+ search = data.field
407
475
  console.log(search);
408
476
  table.reload('businesses_table', {
409
477
  page: {
@@ -85,8 +85,8 @@
85
85
  <br>
86
86
  <div class="layui-inline">
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">
@@ -182,18 +182,63 @@
182
182
  })
183
183
  }
184
184
  })
185
+ var place_list = xmSelect.render({
186
+ el: '#place',
187
+ remoteSearch: true,
188
+ model: {
189
+ icon: 'hidden',
190
+ label: {
191
+ type: 'text',
192
+ text: {
193
+ //左边拼接的字符
194
+ left: '',
195
+ //右边拼接的字符
196
+ right: '',
197
+ //中间的分隔符
198
+ separator: ', ',
199
+ },
200
+ }
201
+ },
202
+ clickClose: true,
203
+ delay: 1000,
204
+ paging: true,
205
+ radio: true,
206
+ pageRemote: true,
207
+ filterable: true,
208
+ remoteMethod: function (val, cb, show, pageIndex) {
209
+ $.ajax( '/missions/sales_place', {
210
+ method: 'get',
211
+ data: {
212
+ q: val,
213
+ page: pageIndex
214
+ },
215
+ dataType: 'json',
216
+ success: function (res) {
217
+ var data = res.data;
218
+ if (res.code == 0) {
219
+ cb(res.data, res.count);
220
+ } else {
221
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
222
+ }
223
+
224
+ }
225
+ })
226
+ }
227
+ })
185
228
 
186
229
  sales_list.setValue(gon.sales);
230
+ place_list.setValue(gon.place);
187
231
  form.render();
188
232
 
189
233
  form.on('submit(add_follow_up)', function (data) {
190
- var assign_follow = [];
234
+ var assign_follow = [];
191
235
  sales_list.getValue().forEach(function(d) {
192
236
  assign_follow.push(d.value);
193
237
  })
194
238
  data.field.assign_follow_up = assign_follow;
195
239
  data.field.business_id = "<%= @business.id %>";
196
- request.authPost("missions/follow_ups", data.field, function (res) {
240
+ data.field.place_id = place_list.getValue('valueStr');
241
+ request.authPost("missions/follow_ups", data.field, function (res) {
197
242
  if (res.success == false) {
198
243
  layer.alert(res.msg)
199
244
  } else {
@@ -74,7 +74,7 @@
74
74
 
75
75
  table.render({
76
76
  elem: '#sale_plan_follow_table',
77
- url: '/missions/businesses/show_follow?id=' + parent.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 +'的跟进时间线',
@@ -335,7 +335,7 @@
335
335
  // 未完成计划
336
336
  table.render({
337
337
  elem: '#unfinish_table',
338
- url: '/missions/businesses/' + parent.id + "/unfinish_plans",
338
+ url: '/missions/businesses/' + parent.business_id + "/unfinish_plans",
339
339
  toolbar: '#unfinish_table_tabar',
340
340
  defaultToolbar: [],
341
341
  cols: [
@@ -43,7 +43,7 @@
43
43
  function demo(){
44
44
  layer.closeAll()
45
45
  business_id = parent.business_id
46
- var content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + id);
46
+ var content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + parent.business_id);
47
47
  var openWH = miniPage.getOpenWidthHeight();
48
48
  sindex = layer.open({
49
49
  title: '商机列表/'+ parent.business_name +'的跟进记录',
@@ -0,0 +1,19 @@
1
+ json.data do
2
+ json.array! @follow_ups do |d|
3
+ json.id d.id
4
+ json.clazz d.clazz.name
5
+ json.stage d.stage.name
6
+ json.staff d.staff.user.real_name
7
+ json.description d.description
8
+ json.advise d.advise
9
+ json.created_at d.created_at.to_s
10
+ json.business d.business.name
11
+ json.business_id d.business.id
12
+ teacher_ids = d.key_person.pluck(:teacher_id)
13
+ json.key_people EducodeSales::Teacher.where(id: teacher_ids).pluck(:name).join('、')
14
+
15
+ end
16
+ end
17
+
18
+ json.code 0
19
+ json.count @follow_ups.total_count
@@ -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"
@@ -1,6 +1,6 @@
1
1
  <div class="layui-tab" lay-filter="sale_tab">
2
2
  <ul class="layui-tab-title">
3
- <li class="layui-this" data="business">商机列表</li>
3
+ <li class="layui-this" data="business">商机</li>
4
4
  <li data="week">周计划</li>
5
5
  <li data="weekly">周报</li>
6
6
  <li data="month">月计划</li>
@@ -207,7 +207,7 @@
207
207
  <div class="layui-inline m-t-10">
208
208
  <label class="layui-form-label">视图</label>
209
209
  <div class="layui-input-inline">
210
- <%= select_tag "follow_count_range", options_for_select([['按周','week'],['按天','day'],['按月','month'],['按年','year']],params[:follow_count_range]), {'lay-filter': 'follow_count'}%>
210
+ <%= select_tag "follow_count_range", options_for_select([['按天','day'],['按周','week'],['按月','month'],['按年','year']],params[:follow_count_range] || 'week'), {'lay-filter': 'follow_count'}%>
211
211
  </div>
212
212
  </div>
213
213
  <div class="layui-inline">
@@ -215,7 +215,7 @@
215
215
  <div class="layui-input-inline">
216
216
  <input type="text" class="layui-input month layui-hide" id="date_month" name="date_month" placeholder=" - " value="<%=params[:date_month] %>" >
217
217
  <input type="text" class="layui-input year layui-hide" id="date_year" name="date_year" placeholder=" - " value="<%=params[:date_year] %>">
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).to_s(:date) + ' - ' + Time.now.to_s(:date) %>">
218
+ <input type="text" class="layui-input week " id="date_week" name="date_week" placeholder=" - " value="<%=params[:date_week].present? ? params[:date_week] : (Time.now - 30.days).beginning_of_week.to_s(:date) + ' - ' + Time.now.end_of_week.to_s(:date) %>">
219
219
  <input type="text" class="layui-input day layui-hide" id="date" name="date" placeholder=" - " value="<%=params[:date] %>">
220
220
  </div>
221
221
  </div>
@@ -51,12 +51,14 @@
51
51
  title: '跟进学校',
52
52
  templet: "#school",
53
53
  totalRow:true,
54
+ sort: true,
54
55
  width: 120
55
56
  }, {
56
57
  field: 'departments',
57
58
  title: '跟进二级学院',
58
59
  templet: "#xschool",
59
60
  totalRow:true,
61
+ sort: true,
60
62
  width: 120
61
63
  },
62
64
  ]
@@ -19,5 +19,5 @@ json.data do
19
19
  end
20
20
  end
21
21
  json.code 0
22
- json.count @courses.total_count
22
+ json.count @courses.present? ? @courses.total_count : 0
23
23
  json.msg 'succcess'
@@ -9,36 +9,48 @@
9
9
  </div>
10
10
  </div>
11
11
  <div class="layui-inline">
12
- <label class="layui-form-label required">职称</label>
12
+ <label class="layui-form-label ">职称</label>
13
13
  <div class="layui-input-block">
14
14
  <%= select_tag "professional_title", options_for_select(['教授', '研究员', '副教授', '副研究员', '讲师', '助理研究员', '助理教授'], @teacher.professional_title), { include_blank: true } %>
15
15
  </div>
16
16
  </div>
17
17
  <br>
18
18
  <div class="layui-inline">
19
- <label class="layui-form-label required">职务</label>
19
+ <label class="layui-form-label ">职务</label>
20
20
  <div class="layui-input-block">
21
- <input type="text" name="job" autocomplete="off" lay-verify="required"
21
+ <input type="text" name="job" autocomplete="off"
22
22
  class="layui-input" placeholder="请输入" value="<%= @teacher.job %>">
23
23
  </div>
24
24
  </div>
25
25
  <div class="layui-inline">
26
- <label class="layui-form-label required">来源</label>
26
+ <label class="layui-form-label ">来源</label>
27
27
  <div class="layui-input-block">
28
28
  <%= select_tag "source_id", options_for_select(EducodeSales::Common.where(clazz: 'teacher_source').pluck(:name, :id), @teacher.source_id), { include_blank: true } %>
29
29
  </div>
30
30
  </div>
31
31
  <br>
32
+ <div class="layui-inline">
33
+ <label class="layui-form-label ">微信号</label>
34
+ <div class="layui-input-block">
35
+ <input type="text" name="wechat" autocomplete="off"
36
+ class="layui-input" placeholder="请输入" value="<%= @teacher.wechat %>">
37
+ </div>
38
+ </div>
39
+ <br>
32
40
  <div class="layui-inline">
33
41
  <label class="layui-form-label required">单位部门</label>
34
42
  <div class="layui-input-block" id="add_department2" style="width: 400px"></div>
35
- <!-- <input type="text" name="edit_school" autocomplete="off" lay-verify="required"-->
36
- <!-- class="layui-input" placeholder="请输入" value="<%#= Department.find_by(id: @teacher.department_id).name %>-<%#= School.find_by(id: Department.find_by(id: @teacher.department_id).school_id).name %>">-->
37
43
  </div>
38
44
  <br>
45
+ <div class="layui-form-item">
46
+ <label class="layui-form-label">教研助理</label>
47
+ <div class="layui-input-inline">
48
+ <div id="edit_teacher_assist" style="width: 400px;"></div>
49
+ </div>
50
+ </div>
39
51
  <div class="layui-inline">
40
52
  <label class="layui-form-label">平台账号</label>
41
- <div class="layui-input-block" id="user_search" style="width: 300px;"></div>
53
+ <div class="layui-input-block" id="user_search" style="width: 400px;"></div>
42
54
  </div>
43
55
  <div class="layui-form-item m-t-20">
44
56
  <div class="layui-input-block">
@@ -60,6 +72,35 @@
60
72
 
61
73
  form.render();
62
74
 
75
+ var edit_teacher_assist_list = xmSelect.render({
76
+ el: '#edit_teacher_assist',
77
+ remoteSearch: true,
78
+ clickClose: true,
79
+ delay: 1000,
80
+ paging: true,
81
+ pageRemote: true,
82
+ filterable: true,
83
+ remoteMethod: function (val, cb, show, pageIndex) {
84
+ $.ajax( '/missions/sales_staff?teacher_assist=true', {
85
+ method: 'get',
86
+ data: {
87
+ q: val,
88
+ page: pageIndex
89
+ },
90
+ dataType: 'json',
91
+ success: function (res) {
92
+ var data = res.data;
93
+ if (res.code == 0) {
94
+ cb(res.data, res.count);
95
+ } else {
96
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
97
+ }
98
+ }
99
+ })
100
+ }
101
+ })
102
+ edit_teacher_assist_list.setValue(gon.teacher_assist)
103
+
63
104
  var add_department = selectInput.render({
64
105
  elem: '#add_department2',
65
106
  name: 'department', // 渲染的input的name值
@@ -125,6 +166,11 @@
125
166
  if (department_id == '') {
126
167
  return layer.alert("请选择单位部门")
127
168
  }
169
+ var assign_follow = [];
170
+ edit_teacher_assist_list.getValue().forEach(function(d) {
171
+ assign_follow.push(d.value);
172
+ })
173
+ data.field.teacher_assist = assign_follow;
128
174
  data.field.department_id = department_id;
129
175
  data.field.user_id = user_id;
130
176
  request.authPut("missions/teachers/"+ parent.id, data.field, function (res) {
@@ -38,6 +38,12 @@
38
38
  <input type="text" class="layui-input" id="time" placeholder="请选择时间" autocomplete="off" name="regist_at">
39
39
  </div>
40
40
  </div>
41
+ <div class="layui-inline">
42
+ <label class="layui-form-label">注册状态</label>
43
+ <div class="layui-input-inline">
44
+ <%= select_tag "status", options_for_select([["已注册","1"],["未注册","0"]]), { include_blank: true } %>
45
+ </div>
46
+ </div>
41
47
  <div class="layui-inline">
42
48
  <label class="layui-form-label">区域</label>
43
49
  <div class="layui-input-inline">
@@ -50,6 +56,12 @@
50
56
  <input type="text" class="layui-input" id="date" name="date" autocomplete="off" placeholder=" - ">
51
57
  </div>
52
58
  </div>
59
+ <div class="layui-inline">
60
+ <label class="layui-form-label">教研助理</label>
61
+ <div class="layui-input-inline">
62
+ <%= select_tag "assist", options_for_select(@staffs, params[:assist]), { 'lay-filter': 'assist', include_blank: true } %>
63
+ </div>
64
+ </div>
53
65
 
54
66
  <div class="layui-inline">
55
67
  <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
@@ -66,7 +78,7 @@
66
78
  <span class="table-label">教师列表</span>
67
79
  <% if can? :create, EducodeSales::Teacher %>
68
80
  <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="import">导入数据</button>
69
- <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add">添加</button>
81
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add">添加老师</button>
70
82
  <% end %>
71
83
  <!-- <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="search_new"> 搜索添加 -->
72
84
  </button>
@@ -230,6 +242,26 @@
230
242
  width: 120,
231
243
  title: '注册时间',
232
244
  },
245
+ {
246
+ field: 'last_login_on',
247
+ width: 120,
248
+ title: '最近登录',
249
+ },
250
+ {
251
+ field: 'created_at',
252
+ width: 120,
253
+ title: '添加时间',
254
+ },
255
+ {
256
+ field: 'wechat',
257
+ width: 120,
258
+ title: '微信号',
259
+ },
260
+ {
261
+ field: 'teacher_assist',
262
+ width: 120,
263
+ title: '教研助理',
264
+ },
233
265
  {
234
266
  title: '操作',
235
267
  minWidth: 170,
@@ -372,7 +404,9 @@
372
404
  name: "",
373
405
  professional_title: "",
374
406
  regist_at: "",
407
+ status: "",
375
408
  school: "",
409
+ assist: "",
376
410
  teacher_source: ""
377
411
  })
378
412
  return false;
@@ -19,8 +19,11 @@ json.data do
19
19
  json.actives d.actives
20
20
  json.students d.students_count
21
21
  json.regist_at d.user.present? ? d.user.created_on.to_s(:date) : ''
22
+ json.last_login_on (d.user.present? && d.user.last_login_on.present?) ? d.user.last_login_on.to_s(:date) : ''
22
23
  json.teacher_used d.teacher_used
23
-
24
+ json.wechat d.wechat
25
+ json.created_at d.created_at.to_s(:date)
26
+ json.teacher_assist d.teacher_assign_follows.map{|t| t.staff.user.real_name}.join(',')
24
27
  teacher_follows_count += d.teacher_follows_count
25
28
  courses_counts += d.courses_count
26
29
  end