educode_sales 0.6.6 → 0.7.0

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/activities_controller.rb +0 -2
  3. data/app/controllers/educode_sales/businesses_controller.rb +259 -43
  4. data/app/controllers/educode_sales/customers_controller.rb +48 -15
  5. data/app/controllers/educode_sales/home_controller.rb +6 -0
  6. data/app/controllers/educode_sales/money_plans_controller.rb +3 -3
  7. data/app/controllers/educode_sales/operation_plans_controller.rb +1 -1
  8. data/app/controllers/educode_sales/plans_controller.rb +1 -1
  9. data/app/controllers/educode_sales/sale_trends_controller.rb +107 -18
  10. data/app/controllers/educode_sales/staffs_controller.rb +29 -0
  11. data/app/controllers/educode_sales/teacher_follows_controller.rb +1 -93
  12. data/app/controllers/educode_sales/teachers_controller.rb +1 -1
  13. data/app/models/educode_sales/business_export_record.rb +5 -0
  14. data/app/models/educode_sales/customer_add.rb +4 -0
  15. data/app/models/educode_sales/staff.rb +1 -0
  16. data/app/models/educode_sales/staff_school.rb +6 -0
  17. data/app/views/educode_sales/activities/index.html.erb +7 -1
  18. data/app/views/educode_sales/activities/new.html.erb +1 -1
  19. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +4 -4
  20. data/app/views/educode_sales/businesses/edit_plan.html.erb +5 -2
  21. data/app/views/educode_sales/businesses/export_records.html.erb +53 -0
  22. data/app/views/educode_sales/businesses/export_records.json.jbuilder +11 -0
  23. data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +30 -0
  24. data/app/views/educode_sales/businesses/index.html.erb +161 -8
  25. data/app/views/educode_sales/businesses/index.json.jbuilder +10 -7
  26. data/app/views/educode_sales/businesses/new_follow_record.html.erb +6 -5
  27. data/app/views/educode_sales/businesses/show_follow.html.erb +37 -3
  28. data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -0
  29. data/app/views/educode_sales/commons/index.html.erb +7 -1
  30. data/app/views/educode_sales/customers/index.html.erb +31 -1
  31. data/app/views/educode_sales/customers/index.json.jbuilder +12 -0
  32. data/app/views/educode_sales/customers/new.html.erb +106 -53
  33. data/app/views/educode_sales/home/staff_schools.json.jbuilder +9 -0
  34. data/app/views/educode_sales/money_plans/index.html.erb +2 -2
  35. data/app/views/educode_sales/roles/edit.html.erb +16 -10
  36. data/app/views/educode_sales/roles/index.html.erb +7 -1
  37. data/app/views/educode_sales/sale_trends/trends.html.erb +96 -44
  38. data/app/views/educode_sales/sale_trends/trends.json.jbuilder +2 -1
  39. data/app/views/educode_sales/sales/index.json.jbuilder +1 -1
  40. data/app/views/educode_sales/staffs/edit.html.erb +46 -5
  41. data/app/views/educode_sales/staffs/index.html.erb +74 -2
  42. data/app/views/educode_sales/staffs/index.json.jbuilder +1 -0
  43. data/app/views/educode_sales/teachers/index.html.erb +1 -1
  44. data/app/views/layouts/educode_sales/application.html.erb +1 -1
  45. data/config/routes.rb +4 -0
  46. data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +7 -0
  47. data/db/migrate/20220121060006_create_educode_sales_business_export_records.rb +10 -0
  48. data/db/migrate/20220125013811_create_educode_sales_staff_schools.rb +10 -0
  49. data/db/migrate/20220125033552_create_educode_sales_customer_adds.rb +9 -0
  50. data/lib/educode_sales/version.rb +1 -1
  51. metadata +12 -2
@@ -25,11 +25,17 @@
25
25
  </div>
26
26
  </div>
27
27
  <div class="layui-form-item">
28
- <label class="layui-form-label required">负责区域</label>
28
+ <label class="layui-form-label">负责区域</label>
29
29
  <div class="layui-input-block">
30
30
  <div id="area" class="demo-transfer"></div>
31
31
  </div>
32
32
  </div>
33
+ <div class="layui-form-item" >
34
+ <label class="layui-form-label">监管学校</label>
35
+ <div class="layui-input-inline" style="">
36
+ <div id="edit_assign_follow" style="width: 1140px;"></div>
37
+ </div>
38
+ </div>
33
39
  <div class="layui-form-item">
34
40
  <label class="layui-form-label required">生效日期</label>
35
41
  <div class="layui-input-block">
@@ -85,6 +91,40 @@
85
91
  return false
86
92
  }
87
93
  })
94
+ var sales_list = xmSelect.render({
95
+ el: '#edit_assign_follow',
96
+ remoteSearch: true,
97
+ autoRow: true,
98
+ // clickClose: true,
99
+ delay: 1000,
100
+ tips: '支持名称/省份搜索,请至少输入一个字符',
101
+ searchTips: '支持名称/省份搜索,请至少输入一个字符',
102
+ paging: true,
103
+ pageRemote: true,
104
+ filterable: true,
105
+ remoteMethod: function (val, cb, show, pageIndex) {
106
+ if(!val){
107
+ return cb([]);
108
+ }
109
+ $.ajax( '/missions/staff_schools', {
110
+ method: 'get',
111
+ data: {
112
+ q: val,
113
+ page: pageIndex
114
+ },
115
+ dataType: 'json',
116
+ success: function (res) {
117
+ var data = res.data;
118
+ if (res.code == 0) {
119
+ cb(res.data, res.count);
120
+ } else {
121
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
122
+ }
123
+ }
124
+ })
125
+ }
126
+ })
127
+ sales_list.setValue(gon.schools)
88
128
 
89
129
  //监听提交
90
130
  form.on('submit(saveBtn)', function (data) {
@@ -92,10 +132,11 @@
92
132
  layui.each(transfer.getData('area_list'), function (i, v) {
93
133
  area_ids.push(v.value)
94
134
  })
95
- if (area_ids.length == 0) {
96
- layer.alert("请选择负责区域");
97
- return false;
98
- }
135
+ var schools = [];
136
+ sales_list.getValue().forEach(function(d) {
137
+ schools.push(d.value);
138
+ })
139
+ data.field['school_ids'] = schools;
99
140
  data.field['area_ids'] = area_ids;
100
141
  request.authPut("missions/staffs/" + parent.staff_id, data.field, function (res) {
101
142
  console.log(res.success == false)
@@ -4,9 +4,43 @@
4
4
  <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加人员</button>
5
5
  </div>
6
6
  </script>
7
-
7
+ <div class="layuimini-main min-height-table" id="week_table_wraper">
8
+ <div class="layui-form layui-form-pane" lay-filter="week_plan_form_filter">
9
+ <div class="layui-form-item">
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label">用户名</label>
12
+ <div class="layui-input-inline large-select">
13
+ <input type="text" class="layui-input" id="name" autocomplete="off" name="name">
14
+ </div>
15
+ </div>
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label">角色</label>
18
+ <div class="layui-input-inline">
19
+ <%= select_tag "role", options_for_select(EducodeSales::Role.all.pluck(:name, :id)), {'lay-filter': 'role', include_blank: true} %>
20
+ </div>
21
+ </div>
22
+ <div class="layui-inline">
23
+ <label class="layui-form-label">人员类型</label>
24
+ <div class="layui-input-inline large-select">
25
+ <%= select_tag "staff_type", options_for_select(EducodeSales::Common.where(clazz: 'staff_type').pluck(:name, :id)), {'lay-filter': 'staff_type', include_blank: true} %>
26
+ </div>
27
+ </div>
28
+ <div class="layui-inline">
29
+ <label class="layui-form-label">状态</label>
30
+ <div class="layui-input-inline large-select">
31
+ <%= select_tag "banned", options_for_select([["启用",0],["禁用",1]]), {'lay-filter': 'banned', include_blank: true} %>
32
+ </div>
33
+ </div>
34
+ <div class="layui-inline">
35
+ <button type="reset" lay-submit class="layui-btn layui-btn-primary" lay-filter="week_plan_reset">重置
36
+ </button>
37
+ <button type="submit" lay-submit class="layui-btn layui-btn-primary" lay-filter="week_plan_search">检索
38
+ </button>
39
+ </div>
40
+ </div>
41
+ </div>
8
42
  <table class="layui-hide" id="staff_filter" lay-filter="staff_filter"></table>
9
-
43
+ </div>
10
44
  <script type="text/html" id="staff_bar">
11
45
  <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
12
46
  <a class="layui-btn layui-btn-xs layui-btn-warm data-count-delete" lay-event="disable">禁用</a>
@@ -53,6 +87,12 @@
53
87
  {
54
88
  field: 'area',
55
89
  title: '负责区域',
90
+ templet:'<div><span title="{{d.area}}">{{d.area}}</span></div>'
91
+ },
92
+ {
93
+ field: 'schools',
94
+ title: '监管学校',
95
+ templet:'<div><span title="{{d.schools}}">{{d.schools}}</span></div>'
56
96
  },
57
97
  {
58
98
  field: 'month',
@@ -97,6 +137,38 @@
97
137
  });
98
138
  }
99
139
  });
140
+ var sort = {}, search = {};
141
+ // table.on('sort(weekPlanTable)', function(obj) {
142
+ // sort.field = obj.field;
143
+ // sort.order = obj.type;
144
+ // table.reload('weekPlanTable', {
145
+ // initSort: obj,
146
+ // where: {
147
+ // sort: sort,
148
+ // q: search
149
+ // }
150
+ // });
151
+ // })
152
+
153
+ // 监听搜索操作
154
+ form.on('submit(week_plan_search)', function (data) {
155
+ search = data.field
156
+ table.reload('staff_filter', {
157
+ page: {
158
+ curr: 1
159
+ },
160
+ where: {q: search, sort : sort}
161
+ }, 'data');
162
+
163
+ return false;
164
+ });
165
+
166
+ form.on('submit(week_plan_reset)', function(data){
167
+ var field = data.field;
168
+ form.val('week_plan_form_filter', {name: '', role: '', staff_type: '', banned: ''})
169
+ return false;
170
+ });
171
+
100
172
  table.on('tool(staff_filter)', function (obj) {
101
173
  var data = obj.data;
102
174
  staff_id = data.id;
@@ -4,6 +4,7 @@ json.data do
4
4
  json.id d.id
5
5
  json.name d.user.real_name
6
6
  json.role d.role&.name
7
+ json.schools d.staff_schools.map(&:school).map(&:name).join("、")
7
8
  json.job_type EducodeSales::Common.job_type_name[d.job_type]
8
9
  json.month d.month
9
10
  json.enabled_at d.enabled_at ? d.enabled_at.to_s(:date) : ''
@@ -68,7 +68,7 @@
68
68
  </button>
69
69
  <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_teachers">搜 索
70
70
  </button>
71
- <a style="padding-left: 20px;color: #0000FF" href="javascript:;" type="submit" class="" lay-submit lay-filter="show_hide">展开/收起
71
+ <a style="padding-left: 20px;color: #0000FF" href="javascript:;" type="submit" class="" lay-submit lay-filter="show_hide">高级搜索
72
72
  </a>
73
73
  </div>
74
74
  </div>
@@ -71,7 +71,7 @@
71
71
  </dd>
72
72
  <% end %>
73
73
  <% if can? :read, EducodeSales::MoneyPlan %>
74
- <dd><a href="/missions/money_plans" class="<%= current?('layui-this', money_plans_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/money_plans.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>回款管理</a>
74
+ <dd><a href="/missions/money_plans" class="<%= current?('layui-this', money_plans_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/money_plans.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>回款计划</a>
75
75
  </dd>
76
76
  <% end %>
77
77
  <% if can? :read, EducodeSales::Customer %>
data/config/routes.rb CHANGED
@@ -12,6 +12,7 @@ EducodeSales::Engine.routes.draw do
12
12
  get :no_permission, to: "home#no_permission"
13
13
  get :sales_staff, to: "home#sales_staff"
14
14
  get :sales_place, to: "home#sales_place"
15
+ get :staff_schools, to: "home#staff_schools"
15
16
 
16
17
  resources :sessions do
17
18
  end
@@ -82,6 +83,9 @@ EducodeSales::Engine.routes.draw do
82
83
 
83
84
  resources :businesses do
84
85
  collection do
86
+ get :export_records
87
+ post :get_export_data
88
+ get :add_export_records
85
89
  get :show_keys
86
90
  get :add_keys
87
91
  get :show_follow
@@ -7,12 +7,19 @@ class CreateEducodeSalesRolePermissions < ActiveRecord::Migration[5.2]
7
7
  t.timestamps
8
8
  end
9
9
  if EducodeSales::Permission.last.nil?
10
+ EducodeSales::Permission.create(name: '导出商机', subject: 'Business', action: 'export_business', clazz: 'business', position: '11')
11
+
10
12
 
11
13
  #附件管理权限
12
14
  EducodeSales::Permission.create(name: '查看附件', subject: 'Business', action: 'show_file', clazz: 'business', position: '11')
13
15
  EducodeSales::Permission.create(name: '上传附件', subject: 'Business', action: 'upload_file', clazz: 'business', position: '11')
14
16
  EducodeSales::Permission.create(name: '下载附件', subject: 'Business', action: 'download_file', clazz: 'business', position: '11')
15
17
  EducodeSales::Permission.create(name: '删除附件', subject: 'Business', action: 'delete_file', clazz: 'business', position: '11')
18
+ #商机个人权限
19
+ EducodeSales::Permission.create(name: '编辑商机(本人商机)', subject: 'Business', action: 'self_edit_business', clazz: 'business', position: '5')
20
+ EducodeSales::Permission.create(name: '添加跟进记录(本人商机)', subject: 'Business', action: 'self_add_follow', clazz: 'business', position: '8')
21
+ EducodeSales::Permission.create(name: '编辑跟进记录(本人创建)', subject: 'Business', action: 'self_edit_follow', clazz: 'business', position: '9')
22
+ EducodeSales::Permission.create(name: '删除跟进记录(本人创建)', subject: 'Business', action: 'self_delete_follow', clazz: 'business', position: '10')
16
23
  #回款管理权限
17
24
  EducodeSales::Permission.create(name: '查看回款列表', subject: 'MoneyPlan', action: 'read', clazz: 'money_plan', position: '15')
18
25
 
@@ -0,0 +1,10 @@
1
+ class CreateEducodeSalesBusinessExportRecords < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_business_export_records do |t|
4
+ t.string :name
5
+ t.references :staff
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class CreateEducodeSalesStaffSchools < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_staff_schools do |t|
4
+ t.references :staff
5
+ t.references :school
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ class CreateEducodeSalesCustomerAdds < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_customer_adds do |t|
4
+ t.references :school
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.6.6'
2
+ VERSION = '0.7.0'
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.6.6
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-14 00:00:00.000000000 Z
11
+ date: 2022-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -177,9 +177,11 @@ files:
177
177
  - app/models/educode_sales/application_record.rb
178
178
  - app/models/educode_sales/assign_follow_up.rb
179
179
  - app/models/educode_sales/business.rb
180
+ - app/models/educode_sales/business_export_record.rb
180
181
  - app/models/educode_sales/common.rb
181
182
  - app/models/educode_sales/course_subject.rb
182
183
  - app/models/educode_sales/customer.rb
184
+ - app/models/educode_sales/customer_add.rb
183
185
  - app/models/educode_sales/customer_extension.rb
184
186
  - app/models/educode_sales/customer_follow.rb
185
187
  - app/models/educode_sales/follow_up.rb
@@ -200,6 +202,7 @@ files:
200
202
  - app/models/educode_sales/sale_report.rb
201
203
  - app/models/educode_sales/sale_trend.rb
202
204
  - app/models/educode_sales/staff.rb
205
+ - app/models/educode_sales/staff_school.rb
203
206
  - app/models/educode_sales/teacher.rb
204
207
  - app/models/educode_sales/teacher_assign_follow.rb
205
208
  - app/models/educode_sales/teacher_follow.rb
@@ -212,7 +215,10 @@ files:
212
215
  - app/views/educode_sales/businesses/edit.html.erb
213
216
  - app/views/educode_sales/businesses/edit_follow_record.html.erb
214
217
  - app/views/educode_sales/businesses/edit_plan.html.erb
218
+ - app/views/educode_sales/businesses/export_records.html.erb
219
+ - app/views/educode_sales/businesses/export_records.json.jbuilder
215
220
  - app/views/educode_sales/businesses/file.html.erb
221
+ - app/views/educode_sales/businesses/get_export_data.json.jbuilder
216
222
  - app/views/educode_sales/businesses/index.html.erb
217
223
  - app/views/educode_sales/businesses/index.json.jbuilder
218
224
  - app/views/educode_sales/businesses/new.html.erb
@@ -254,6 +260,7 @@ files:
254
260
  - app/views/educode_sales/home/search_operation_teacher.json.jbuilder
255
261
  - app/views/educode_sales/home/search_teacher.json.jbuilder
256
262
  - app/views/educode_sales/home/search_users.json.jbuilder
263
+ - app/views/educode_sales/home/staff_schools.json.jbuilder
257
264
  - app/views/educode_sales/home/statistics.html.erb
258
265
  - app/views/educode_sales/money_plans/index.html.erb
259
266
  - app/views/educode_sales/money_plans/index.json.jbuilder
@@ -411,6 +418,9 @@ files:
411
418
  - db/migrate/20211215025029_create_educode_sales_customer_follows.rb
412
419
  - db/migrate/20211220102720_add_position_to_commons.rb
413
420
  - db/migrate/20211221075146_add_school_id_to_educode_sales_businesses.rb
421
+ - db/migrate/20220121060006_create_educode_sales_business_export_records.rb
422
+ - db/migrate/20220125013811_create_educode_sales_staff_schools.rb
423
+ - db/migrate/20220125033552_create_educode_sales_customer_adds.rb
414
424
  - lib/educode_sales.rb
415
425
  - lib/educode_sales/engine.rb
416
426
  - lib/educode_sales/version.rb