educode_sales 0.3.8 → 0.3.9

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/educode_sales/extent/xm-select.js +8 -0
  3. data/app/controllers/educode_sales/businesses_controller.rb +5 -2
  4. data/app/controllers/educode_sales/follow_ups_controller.rb +9 -0
  5. data/app/controllers/educode_sales/home_controller.rb +10 -1
  6. data/app/controllers/educode_sales/import_teachers_controller.rb +68 -0
  7. data/app/controllers/educode_sales/places_controller.rb +1 -0
  8. data/app/controllers/educode_sales/sale_trends_controller.rb +8 -6
  9. data/app/controllers/educode_sales/sales_controller.rb +1 -0
  10. data/app/controllers/educode_sales/teachers_controller.rb +4 -4
  11. data/app/models/educode_sales/assign_follow_up.rb +6 -0
  12. data/app/models/educode_sales/follow_up.rb +1 -0
  13. data/app/views/educode_sales/activities/edit.html.erb +0 -1
  14. data/app/views/educode_sales/activities/index.html.erb +20 -1
  15. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +43 -1
  16. data/app/views/educode_sales/businesses/index.html.erb +10 -3
  17. data/app/views/educode_sales/businesses/index.json.jbuilder +3 -0
  18. data/app/views/educode_sales/businesses/new_follow_record.html.erb +44 -13
  19. data/app/views/educode_sales/businesses/show_follow.html.erb +12 -5
  20. data/app/views/educode_sales/businesses/show_follow_record.html.erb +6 -0
  21. data/app/views/educode_sales/commons/edit.html.erb +0 -1
  22. data/app/views/educode_sales/commons/index.html.erb +1 -0
  23. data/app/views/educode_sales/home/sales_staff.json.jbuilder +9 -0
  24. data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +2 -2
  25. data/app/views/educode_sales/operation_plans/_monthly.html.erb +3 -2
  26. data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +2 -1
  27. data/app/views/educode_sales/operation_plans/_weekly.html.erb +4 -2
  28. data/app/views/educode_sales/operation_plans/edit_week.html.erb +1 -0
  29. data/app/views/educode_sales/operation_reports/edit.html.erb +27 -1
  30. data/app/views/educode_sales/places/edit.html.erb +0 -2
  31. data/app/views/educode_sales/places/index.html.erb +1 -0
  32. data/app/views/educode_sales/places/index.json.jbuilder +3 -3
  33. data/app/views/educode_sales/places/new.html.erb +0 -1
  34. data/app/views/educode_sales/plans/_monthPlan.html.erb +2 -2
  35. data/app/views/educode_sales/plans/_monthly.html.erb +2 -1
  36. data/app/views/educode_sales/plans/_weekPlan.html.erb +2 -1
  37. data/app/views/educode_sales/plans/_weekly.html.erb +3 -1
  38. data/app/views/educode_sales/roles/edit.html.erb +0 -1
  39. data/app/views/educode_sales/roles/index.html.erb +1 -1
  40. data/app/views/educode_sales/sale_reports/edit.html.erb +26 -0
  41. data/app/views/educode_sales/sales/index.html.erb +1 -0
  42. data/app/views/educode_sales/sales/index.json.jbuilder +2 -2
  43. data/app/views/educode_sales/sales/operations.html.erb +1 -0
  44. data/app/views/educode_sales/sales/trends.html.erb +0 -4
  45. data/app/views/educode_sales/staffs/index.html.erb +1 -0
  46. data/app/views/educode_sales/teachers/add_courses.html.erb +0 -1
  47. data/app/views/educode_sales/teachers/import.html.erb +40 -0
  48. data/app/views/educode_sales/teachers/index.html.erb +20 -3
  49. data/app/views/educode_sales/teachers/new.html.erb +0 -1
  50. data/config/routes.rb +5 -0
  51. data/db/migrate/20211013060712_create_educode_sales_assign_follow_ups.rb +10 -0
  52. data/lib/educode_sales/version.rb +1 -1
  53. metadata +8 -2
@@ -1,7 +1,12 @@
1
1
  <script type="text/html" id="newWeeklyToolbar">
2
2
  <div class="layui-btn-container">
3
+ {{# if(parent.from_edit_monthly){ }}
4
+ <span class="table-label">本月计划列表</span>
5
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add_month"> 添加计划</button>
6
+ {{# } else { }}
3
7
  <span class="table-label">本周计划列表</span>
4
8
  <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加计划</button>
9
+ {{# } }}
5
10
  </div>
6
11
  </script>
7
12
  <form class="layui-form layui-form-pane">
@@ -168,6 +173,27 @@
168
173
  $(window).on("resize", function () {
169
174
  layer.full(sindex);
170
175
  });
176
+ }else if (obj.event === 'add_month') { // 监听添加操作
177
+ from_weekly = true;
178
+ var content = miniPage.getHrefContent('/missions/plans/new_month');
179
+ var openWH = miniPage.getOpenWidthHeight();
180
+ sindex = layer.open({
181
+ title: '添加计划',
182
+ type: 1,
183
+ shade: 0.2,
184
+ maxmin: true,
185
+ shadeClose: true,
186
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
187
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
188
+ content: content,
189
+ success: function (layero, index) {
190
+ // 重新渲染弹层中的下拉选择框select
191
+ form.render('select');
192
+ }
193
+ });
194
+ $(window).on("resize", function () {
195
+ layer.full(sindex);
196
+ });
171
197
  }
172
198
  });
173
199
  table.on('tool(newWeeklyTable)', function (obj) {
@@ -60,6 +60,7 @@
60
60
  ]
61
61
  ],
62
62
  limit: 20,
63
+ limits: [10,15,20,30,40,50,60,70,80,90],
63
64
  page: true
64
65
  });
65
66
  });
@@ -6,8 +6,8 @@ json.data do
6
6
  json.area d.areas.present? ? d.areas.pluck(:name).join("、") : ''
7
7
  json.business_a d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @a_clazz&.id).count
8
8
  json.business_b d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @b_clazz&.id).count
9
- json.goal d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.stage_id in (?)", @step_ids).sum(:total_amount).round(2)
10
- json.return_money d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").sum("educode_sales_businesses.return_money")
9
+ json.goal d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.stage_id in (?)", @x, @step_ids).sum(:total_amount).round(2)
10
+ json.return_money d.businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id != ?", @x).sum("educode_sales_businesses.return_money").round(2)
11
11
  json.a_clazz_id @a_clazz&.id
12
12
  json.b_clazz_id @b_clazz&.id
13
13
  end
@@ -62,6 +62,7 @@
62
62
  ]
63
63
  ],
64
64
  limit: 20,
65
+ limits: [10,15,20,30,40,50,60,70,80,90],
65
66
  page: true
66
67
  });
67
68
 
@@ -177,7 +177,6 @@
177
177
  }
178
178
  })
179
179
  $("#" + el).blur(function () {
180
- console.log(this.value)
181
180
  if (this.value == '') {
182
181
  layer.msg("不能为空")
183
182
  } else {
@@ -185,13 +184,11 @@
185
184
  data[el] = this.value;
186
185
  var self = this;
187
186
  data['year'] = year;
188
- console.log(data, $("#years").value, year)
189
187
  request.post( '/missions/sales/sale_trends',
190
188
  data,
191
189
  function(res) {
192
190
  $("#" + el + "_field").addClass("layui-hide");
193
191
  $("#" + el + "_value").removeClass("layui-hide");
194
- console.log(self.value)
195
192
  $("#" + el + "_value")[0].innerText = self.value + "万";
196
193
  }
197
194
  )
@@ -200,7 +197,6 @@
200
197
  }
201
198
 
202
199
  form.on('select(year)', function(data){
203
- console.log(data, )
204
200
  year = data.value
205
201
  window.location.href = "/missions/sales/trends?year=" + data.value
206
202
  })
@@ -73,6 +73,7 @@
73
73
  ]
74
74
  ],
75
75
  limit: 20,
76
+ limits: [10,15,20,30,40,50,60,70,80,90],
76
77
  page: true,
77
78
  skin: 'line'
78
79
  });
@@ -48,7 +48,6 @@
48
48
 
49
49
  //监听提交
50
50
  form.on('submit(add_course)', function (data) {
51
- console.log(data.field)
52
51
  request.authPost('missions/teachers/'+parent.teacher_id +'/create_course', data.field, function (res) {
53
52
  if (res.success == false) {
54
53
  layer.alert(res.msg)
@@ -0,0 +1,40 @@
1
+ <div style="padding-left: 50px">
2
+ <button type="button" class="layui-btn" id="test3"><i class="layui-icon"></i>选择文件</button>
3
+ </div>
4
+ <script>
5
+ layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput'], function () {
6
+ var form = layui.form,
7
+ layer = layui.layer,
8
+ table = layui.table,
9
+ laytpl = layui.laytpl,
10
+ upload = layui.upload,
11
+ request = layui.request,
12
+ $ = layui.$;
13
+ selectInput = layui.selectInput;
14
+
15
+ form.render();
16
+
17
+ //指定允许上传的文件类型
18
+ upload.render({
19
+ elem: '#test3'
20
+ ,url: '/missions/import_teachers' //此处配置你自己的上传接口即可
21
+ ,accept: 'file', //普通文件
22
+ headers: {
23
+ 'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
24
+ }
25
+ ,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
26
+ layer.load(); //上传loading
27
+ }
28
+ ,done: function(res){
29
+ layer.msg('导入成功');
30
+ table.reload('teachers_table');
31
+ table.reload('activities_table');
32
+ layer.close(parent.import_index)
33
+ layer.closeAll('loading'); //关闭loading
34
+ }
35
+ ,error: function(index, upload){
36
+ layer.closeAll('loading'); //关闭loading
37
+ }
38
+ });
39
+ });
40
+ </script>
@@ -65,8 +65,9 @@
65
65
  <div class="layui-btn-container">
66
66
  <span class="table-label">教师列表</span>
67
67
  <% if can? :create, EducodeSales::Teacher %>
68
- <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add">添加</button>
69
- <% end %>
68
+ <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>
70
+ <% end %>
70
71
  <!-- <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="search_new"> 搜索添加 -->
71
72
  </button>
72
73
  </div>
@@ -235,6 +236,7 @@
235
236
  ],
236
237
 
237
238
  limit: 20,
239
+ limits: [10,15,20,30,40,50,60,70,80,90],
238
240
  page: true,
239
241
  done: function (res) {
240
242
  drowpdwonRender()
@@ -347,7 +349,6 @@
347
349
  // 监听搜索操作
348
350
  form.on('submit(search_teachers)', function (data) {
349
351
  search = data.field
350
- console.log(search);
351
352
  table.reload('teachers_table', {
352
353
  page: {
353
354
  curr: 1
@@ -391,6 +392,22 @@
391
392
  $(window).on("resize", function () {
392
393
  layer.full(index);
393
394
  });
395
+ }else if (obj.event === 'import') { //
396
+ var content = miniPage.getHrefContent('/missions/teachers/import');
397
+ var openWH = miniPage.getOpenWidthHeight();
398
+ import_index = layer.open({
399
+ title: '导入数据',
400
+ type: 1,
401
+ shade: 0.2,
402
+ shadeClose: true,
403
+ area: ['200px', '100px'],
404
+ offset: 'auto',
405
+ closeBtn: 0,
406
+ content: content,
407
+ });
408
+ $(window).on("resize", function () {
409
+ layer.full(index);
410
+ });
394
411
  } else if (obj.event === 'search_new') { // 搜索添加
395
412
  content = miniPage.getHrefContent('/missions/teachers/search_new');
396
413
  openWH = miniPage.getOpenWidthHeight();
@@ -81,7 +81,6 @@
81
81
  return cb([]);
82
82
  }
83
83
  request.get('missions/search_edu_teacher?q=' + value, {}, function (res) {
84
- console.log(res);
85
84
  return cb(res)
86
85
  })
87
86
  }
data/config/routes.rb CHANGED
@@ -9,6 +9,7 @@ EducodeSales::Engine.routes.draw do
9
9
  get :search_edu_teacher,to: "home#search_edu_teacher"
10
10
  get :search, to: "home#search"
11
11
  get :no_permission, to: "home#no_permission"
12
+ get :sales_staff, to: "home#sales_staff"
12
13
 
13
14
  resources :sessions do
14
15
  end
@@ -110,8 +111,12 @@ EducodeSales::Engine.routes.draw do
110
111
  end
111
112
  end
112
113
 
114
+
115
+ resources :import_teachers
116
+
113
117
  resources :teachers do
114
118
  collection do
119
+ get :import
115
120
  get :add_keys
116
121
  get :search_new
117
122
  get :add_courses
@@ -0,0 +1,10 @@
1
+ class CreateEducodeSalesAssignFollowUps < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_assign_follow_ups do |t|
4
+ t.references :staff
5
+ t.references :follow_up
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.3.8'
2
+ VERSION = '0.3.9'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: educode_sales
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-10 00:00:00.000000000 Z
11
+ date: 2021-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -96,6 +96,7 @@ files:
96
96
  - app/assets/javascripts/educode_sales/extent/miniPage.js
97
97
  - app/assets/javascripts/educode_sales/extent/request.js
98
98
  - app/assets/javascripts/educode_sales/extent/select_input.js
99
+ - app/assets/javascripts/educode_sales/extent/xm-select.js
99
100
  - app/assets/javascripts/educode_sales/layui.js
100
101
  - app/assets/stylesheets/educode_sales/app.css
101
102
  - app/assets/stylesheets/educode_sales/application.css
@@ -120,6 +121,7 @@ files:
120
121
  - app/controllers/educode_sales/commons_controller.rb
121
122
  - app/controllers/educode_sales/follow_ups_controller.rb
122
123
  - app/controllers/educode_sales/home_controller.rb
124
+ - app/controllers/educode_sales/import_teachers_controller.rb
123
125
  - app/controllers/educode_sales/key_person_controller.rb
124
126
  - app/controllers/educode_sales/operation_plans_controller.rb
125
127
  - app/controllers/educode_sales/operation_reports_controller.rb
@@ -146,6 +148,7 @@ files:
146
148
  - app/models/educode_sales/activity.rb
147
149
  - app/models/educode_sales/activity_teacher.rb
148
150
  - app/models/educode_sales/application_record.rb
151
+ - app/models/educode_sales/assign_follow_up.rb
149
152
  - app/models/educode_sales/business.rb
150
153
  - app/models/educode_sales/common.rb
151
154
  - app/models/educode_sales/course_subject.rb
@@ -194,6 +197,7 @@ files:
194
197
  - app/views/educode_sales/follow_ups/teachers.json.jbuilder
195
198
  - app/views/educode_sales/home/index.html.erb
196
199
  - app/views/educode_sales/home/no_permission.html.erb
200
+ - app/views/educode_sales/home/sales_staff.json.jbuilder
197
201
  - app/views/educode_sales/home/search.json.jbuilder
198
202
  - app/views/educode_sales/home/search_edu_teacher.json.jbuilder
199
203
  - app/views/educode_sales/home/search_teacher.json.jbuilder
@@ -285,6 +289,7 @@ files:
285
289
  - app/views/educode_sales/teachers/course_subject.json.jbuilder
286
290
  - app/views/educode_sales/teachers/edit.html.erb
287
291
  - app/views/educode_sales/teachers/edit_follow_record.html.erb
292
+ - app/views/educode_sales/teachers/import.html.erb
288
293
  - app/views/educode_sales/teachers/index.html.erb
289
294
  - app/views/educode_sales/teachers/index.json.jbuilder
290
295
  - app/views/educode_sales/teachers/new.html.erb
@@ -327,6 +332,7 @@ files:
327
332
  - db/migrate/20210915061738_add_students_count_teacher_follow_ups.rb
328
333
  - db/migrate/20211009031109_add_tel_key_peoples.rb
329
334
  - db/migrate/20211009063423_add_source_businesses.rb
335
+ - db/migrate/20211013060712_create_educode_sales_assign_follow_ups.rb
330
336
  - lib/educode_sales.rb
331
337
  - lib/educode_sales/engine.rb
332
338
  - lib/educode_sales/version.rb