educode_sales 1.10.48 → 1.10.49

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/educode_sales/modules/easyeditor/easyeditor.css +130 -0
  3. data/app/assets/stylesheets/educode_sales/modules/easyeditor/fangge-style.css +4 -0
  4. data/app/controllers/educode_sales/application_controller.rb +12 -0
  5. data/app/controllers/educode_sales/business_courses_controller.rb +230 -0
  6. data/app/controllers/educode_sales/home_controller.rb +7 -0
  7. data/app/controllers/educode_sales/shixun_dectects_controller.rb +111 -0
  8. data/app/controllers/educode_sales/shixuns_controller.rb +157 -0
  9. data/app/controllers/educode_sales/subject_trends_controller.rb +937 -0
  10. data/app/controllers/educode_sales/subjects_controller.rb +202 -0
  11. data/app/helpers/educode_sales/application_helper.rb +8 -0
  12. data/app/helpers/educode_sales/business_courses_helper.rb +37 -0
  13. data/app/helpers/educode_sales/subject_helper.rb +29 -0
  14. data/app/models/educode_sales/business.rb +22 -0
  15. data/app/models/educode_sales/business_deliver_subject.rb +48 -0
  16. data/app/models/educode_sales/business_subject.rb +62 -0
  17. data/app/models/educode_sales/business_subject_shixun.rb +46 -0
  18. data/app/models/educode_sales/business_subject_staff.rb +35 -0
  19. data/app/models/educode_sales/permission.rb +2 -1
  20. data/app/models/educode_sales/shixun_dectect.rb +12 -0
  21. data/app/views/educode_sales/business_courses/edit.html.erb +148 -0
  22. data/app/views/educode_sales/business_courses/index.html.erb +312 -0
  23. data/app/views/educode_sales/business_courses/index.json.jbuilder +16 -0
  24. data/app/views/educode_sales/business_courses/list_shixuns.html.erb +224 -0
  25. data/app/views/educode_sales/business_courses/list_shixuns.json.jbuilder +17 -0
  26. data/app/views/educode_sales/business_courses/list_subjects.html.erb +217 -0
  27. data/app/views/educode_sales/business_courses/list_subjects.json.jbuilder +12 -0
  28. data/app/views/educode_sales/business_courses/new.html.erb +212 -0
  29. data/app/views/educode_sales/shixun_dectects/index.html.erb +466 -0
  30. data/app/views/educode_sales/shixun_dectects/index.json.jbuilder +22 -0
  31. data/app/views/educode_sales/shixun_dectects/markdown.html.erb +60 -0
  32. data/app/views/educode_sales/shixuns/edit.html.erb +186 -0
  33. data/app/views/educode_sales/shixuns/index.html.erb +513 -0
  34. data/app/views/educode_sales/shixuns/index.json.jbuilder +22 -0
  35. data/app/views/educode_sales/shixuns/new.html.erb +251 -0
  36. data/app/views/educode_sales/subject_trends/trends.html.erb +1074 -0
  37. data/app/views/educode_sales/subjects/edit.html.erb +86 -0
  38. data/app/views/educode_sales/subjects/index.html.erb +247 -0
  39. data/app/views/educode_sales/subjects/index.json.jbuilder +16 -0
  40. data/app/views/educode_sales/subjects/list_shixuns.html.erb +228 -0
  41. data/app/views/educode_sales/subjects/list_shixuns.json.jbuilder +17 -0
  42. data/app/views/educode_sales/subjects/new.html.erb +254 -0
  43. data/app/views/layouts/educode_sales/application.html.erb +38 -0
  44. data/config/routes.rb +37 -0
  45. data/lib/educode_sales/version.rb +1 -1
  46. metadata +37 -1
@@ -0,0 +1,254 @@
1
+ <%= Gon::Base.render_data %>
2
+ <form class="layui-form" action="" style="width: 90%;margin-top: 20px">
3
+
4
+ <div class="layui-form-item">
5
+ <label class="layui-form-label" style="width: 100px">实践课程名称:<span style="color: red"> *</span></label>
6
+ <div class="layui-input-block">
7
+ <div id="subject_id" style="width: 50%;margin-left: 10px"></div>
8
+ </div>
9
+ </div>
10
+ <div class="layui-form-item">
11
+ <label class="layui-form-label" style="width: 100px">实践项目名称:<span style="color: red"> *</span></label>
12
+ <div class="layui-input-block">
13
+ <div id="shixun_ids" style="width: 50%;margin-left: 10px"></div>
14
+ </div>
15
+ </div>
16
+ <div class="layui-form-item">
17
+ <label class="layui-form-label">交付时间:<span style="color: red"> *</span></label>
18
+ <div class="layui-input-block">
19
+ <input type="text" name="deliver_date" style="width: 50%;" class="layui-input" id="ID-laydate-demo" placeholder="- -">
20
+ </div>
21
+ </div>
22
+ <div class="layui-form-item">
23
+ <label class="layui-form-label">课程经理:<span style="color: red"> *</span></label>
24
+ <div class="layui-input-block">
25
+ <div id="manage_id" style="width: 50%"></div>
26
+ </div>
27
+ </div>
28
+
29
+ <div class="layui-form-item">
30
+ <label class="layui-form-label" style="width: 80px">交付单位:<span style="color: red"> *</span></label>
31
+ <div class="layui-input-block">
32
+ <div id="school_id" style="width: 50%;"></div>
33
+ </div>
34
+ </div>
35
+ <div class="layui-form-item">
36
+ <label class="layui-form-label">销售:<span style="color: red"> *</span></label>
37
+ <div class="layui-input-block">
38
+ <div id="sale_id" style="width: 50%"></div>
39
+ </div>
40
+ </div>
41
+
42
+
43
+
44
+
45
+
46
+
47
+ <div class="layui-form-item">
48
+ <label class="layui-form-label"></label>
49
+ <div class="layui-input-block">
50
+ <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
51
+ </div>
52
+ </div>
53
+ </form>
54
+ <script>
55
+ layui.use(['form', 'request', 'xmSelect', 'table'], function () {
56
+ var form = layui.form,
57
+ layer = layui.layer,
58
+ laydate = layui.laydate,
59
+ table = layui.table,
60
+ xmSelect = layui.xmSelect,
61
+ $ = layui.$;
62
+
63
+ // 解决form表单中select不渲染的问题
64
+ form.render();
65
+ form.render('select', 'test')
66
+ laydate.render({
67
+ elem: '#ID-laydate-demo'
68
+ });
69
+
70
+ // 交付单位
71
+ var school_id = xmSelect.render({
72
+ el: '#school_id',
73
+ name: "school_id",
74
+ remoteSearch: true,
75
+ autoRow: true,
76
+ delay: 1000,
77
+ tips: '- -',
78
+ radio: true,
79
+ searchTips: '支持名称搜索,请至少输入一个字符',
80
+ filterable: true,
81
+ remoteMethod: function (val, cb, show, pageIndex) {
82
+ if (!val) {
83
+ return cb([]);
84
+ }
85
+ $.ajax('/api/schools/search', {
86
+ method: 'get',
87
+ data: {
88
+ keyword: val
89
+ },
90
+ dataType: 'json',
91
+ success: function (res) {
92
+ console.log(res)
93
+ var data = res.schools;
94
+ data.forEach((item)=>{
95
+ item.value = item.id
96
+ })
97
+ if (res.status === 0) {
98
+ cb(data);
99
+ }
100
+ }
101
+ })
102
+ }
103
+ })
104
+
105
+
106
+ var shixun_ids = xmSelect.render({
107
+ el: '#shixun_ids',
108
+ name: "shixun_ids",
109
+ autoRow: true,
110
+ delay: 1000,
111
+ tips: '- -',
112
+ searchTips: '支持名称搜索,请至少输入一个字符',
113
+ filterable: true
114
+ })
115
+
116
+
117
+ // 实践课程
118
+ var subject_id = xmSelect.render({
119
+ el: '#subject_id',
120
+ name: "subject_id",
121
+ remoteSearch: true,
122
+ autoRow: true,
123
+ delay: 1000,
124
+ tips: '- -',
125
+ radio: true,
126
+ searchTips: '支持名称搜索,请至少输入一个字符',
127
+ paging: true,
128
+ pageRemote: true,
129
+ filterable: true,
130
+ on: function (data) {
131
+ if(data.arr.length){
132
+ let subject_id = data.arr[0].value
133
+ $.ajax('/missions/subjects/shixun_list', {
134
+ method: 'get',
135
+ data: {
136
+ subject_id: subject_id
137
+ },
138
+ dataType: 'json',
139
+ success: function (res) {
140
+ var data = res.data;
141
+ if (res.code == 0) {
142
+ shixun_ids.update({
143
+ data: data
144
+ })
145
+ }
146
+ }
147
+ })
148
+ }
149
+ },
150
+ remoteMethod: function (val, cb, show, pageIndex) {
151
+ if (!val) {
152
+ return cb([]);
153
+ }
154
+ $.ajax('/missions/subjects/search_subjects', {
155
+ method: 'get',
156
+ data: {
157
+ q: val,
158
+ page: pageIndex
159
+ },
160
+ dataType: 'json',
161
+ success: function (res) {
162
+ console.log(res)
163
+ var data = res.data;
164
+ if (res.code == 0) {
165
+ cb(res.data, res.count);
166
+ } else {
167
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
168
+ }
169
+ }
170
+ })
171
+ }
172
+ })
173
+
174
+
175
+ // 课程经理
176
+ var manage_id = xmSelect.render({
177
+ el: '#manage_id',
178
+ name: "manage_id",
179
+ data: gon.staffs,
180
+ filterable: true,
181
+ tips: "- -",
182
+ tips: "- -",
183
+ paging: true,
184
+ multiple: true
185
+ })
186
+ // 销售
187
+ var sale_id = xmSelect.render({
188
+ el: '#sale_id',
189
+ name: "sale_id",
190
+ data: gon.staffs,
191
+ filterable: true,
192
+ tips: "- -",
193
+ tips: "- -",
194
+ paging: true,
195
+ multiple: true
196
+ })
197
+
198
+ function isNull(str){
199
+ return str === "" || str === null
200
+ }
201
+ form.on('submit(saveBtn)', function (data) {
202
+ console.log(form.val())
203
+ let new_data = form.val();
204
+
205
+ if(isNull(new_data.subject_id)){
206
+ layer.msg('实践课程未选择');
207
+ return false
208
+ }
209
+ if(isNull(new_data.shixun_ids)){
210
+ layer.msg('实践项目未选择');
211
+ return false
212
+ }
213
+ if(isNull(new_data.deliver_date)){
214
+ layer.msg('交付时间未选择');
215
+ return false
216
+ }
217
+ if(isNull(new_data.manage_id)){
218
+ layer.msg('课程经理未选择');
219
+ return false
220
+ }
221
+ if(isNull(new_data.school_id)){
222
+ layer.msg('交付单位未选择');
223
+ return false
224
+ }
225
+ if(isNull(new_data.sale_id)){
226
+ layer.msg('销售经理未选择');
227
+ return false
228
+ }
229
+
230
+
231
+ $.ajax('/missions/subjects/', {
232
+ method: 'POST',
233
+ data: new_data,
234
+ dataType: 'json',
235
+ success: function (res) {
236
+ console.log(res)
237
+ if (res.success) {
238
+ layer.closeAll();
239
+ table.reload('table', {
240
+ done: function () {
241
+ }
242
+ });
243
+ } else {
244
+ layer.msg('实践课程已存在');
245
+ }
246
+ },
247
+ error:function (res) {
248
+ layer.msg('实践课程已存在');
249
+ }
250
+ })
251
+ return false;
252
+ });
253
+ });
254
+ </script>
@@ -221,6 +221,44 @@
221
221
  </dl>
222
222
  </li>
223
223
  <% end %>
224
+ <% if can?(:checkout, EducodeSales::BusinessDeliverSubject) ||
225
+ can?(:shixun, EducodeSales::BusinessDeliverSubject) ||
226
+ can?(:subject, EducodeSales::BusinessDeliverSubject) ||
227
+ can?(:business, EducodeSales::BusinessDeliverSubject) ||
228
+ can?(:status, EducodeSales::BusinessDeliverSubject) ||
229
+ @current_admin.is_admin %>
230
+ <li class="layui-nav-item layui-nav-itemed menu-li">
231
+ <a class href="javascript:;"><b><%= image_tag "educode_sales/5.渠道管理.png", size: "15" %>
232
+ <i style="font-size: 25px; padding-right: 25px"></i>课程管理</b></a>
233
+ <dl class="layui-nav-child">
234
+ <% if can?(:status, EducodeSales::BusinessDeliverSubject) %>
235
+ <dd>
236
+ <a href="/missions/subject_trends/trends" class=""><i style="padding-right: 35px"></i><%= image_tag "educode_sales/7.运营活动.png", size: "15" %>
237
+ <i style="font-size: 25px; padding-right: 15px"></i>课程态势</a></dd>
238
+ <%end %>
239
+ <% if can?(:business, EducodeSales::BusinessDeliverSubject) %>
240
+ <dd>
241
+ <a href="/missions/business_courses" class="<%= current?('layui-this', business_courses_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/2.市场态势.png", size: "15" %>
242
+ <i style="font-size: 25px; padding-right: 15px"></i>商机交付课程</a></dd>
243
+ <%end %>
244
+ <% if can?(:subject, EducodeSales::BusinessDeliverSubject) %>
245
+ <dd>
246
+ <a href="/missions/subjects" class="<%= current?('layui-this', subjects_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/2.市场态势.png", size: "15" %>
247
+ <i style="font-size: 25px; padding-right: 15px"></i>实践课程管理</a></dd>
248
+ <%end %>
249
+ <% if can?(:shixun, EducodeSales::BusinessDeliverSubject) %>
250
+ <dd>
251
+ <a href="/missions/shixuns" class="<%= current?('layui-this', shixuns_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/2.市场态势.png", size: "15" %>
252
+ <i style="font-size: 25px; padding-right: 15px"></i>实践项目管理</a></dd>
253
+ <%end %>
254
+ <% if can?(:checkout, EducodeSales::BusinessDeliverSubject) %>
255
+ <dd>
256
+ <a href="/missions/shixun_dectects" class="<%= current?('layui-this', shixun_dectects_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/2.市场态势.png", size: "15" %>
257
+ <i style="font-size: 25px; padding-right: 15px"></i>课程项目质检</a></dd>
258
+ <%end %>
259
+ </dl>
260
+ </li>
261
+ <%end %>
224
262
 
225
263
  <% if @current_admin.is_admin || @current_admin.code == 'userbe' %>
226
264
  <li class="layui-nav-item layui-nav-itemed menu-li">
data/config/routes.rb CHANGED
@@ -471,4 +471,41 @@ EducodeSales::Engine.routes.draw do
471
471
  resources :teacher_follows
472
472
  resources :idea_follows
473
473
 
474
+ resources :business_courses do
475
+ collection do
476
+ get :list_shixuns
477
+ get :list_subjects
478
+ get :subjects
479
+ get :select_business
480
+ end
481
+ member do
482
+ end
483
+ end
484
+
485
+ resources :subjects do
486
+ collection do
487
+ get :shixun_list
488
+ get :list_shixuns
489
+ get :search_subjects
490
+ end
491
+ end
492
+
493
+ resources :subject_trends do
494
+ collection do
495
+ get :trends
496
+ end
497
+ end
498
+
499
+ resources :shixuns
500
+
501
+ resources :shixun_dectects do
502
+ collection do
503
+ put :examine
504
+ get :markdown
505
+ post :submit
506
+ end
507
+ end
508
+
509
+
510
+
474
511
  end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '1.10.48'
2
+ VERSION = '1.10.49'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: educode_sales
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.48
4
+ version: 1.10.49
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
@@ -133,6 +133,8 @@ files:
133
133
  - app/assets/stylesheets/educode_sales/layuimini.css
134
134
  - app/assets/stylesheets/educode_sales/login.scss
135
135
  - app/assets/stylesheets/educode_sales/modules/code.css
136
+ - app/assets/stylesheets/educode_sales/modules/easyeditor/easyeditor.css
137
+ - app/assets/stylesheets/educode_sales/modules/easyeditor/fangge-style.css
136
138
  - app/assets/stylesheets/educode_sales/modules/laydate/default/font.scss
137
139
  - app/assets/stylesheets/educode_sales/modules/laydate/default/laydate.css
138
140
  - app/assets/stylesheets/educode_sales/modules/layer/default/icon-ext.png
@@ -146,6 +148,7 @@ files:
146
148
  - app/controllers/educode_sales/activities_controller.rb
147
149
  - app/controllers/educode_sales/application_controller.rb
148
150
  - app/controllers/educode_sales/assessments_controller.rb
151
+ - app/controllers/educode_sales/business_courses_controller.rb
149
152
  - app/controllers/educode_sales/businesses_controller.rb
150
153
  - app/controllers/educode_sales/commons_controller.rb
151
154
  - app/controllers/educode_sales/contracts_controller.rb
@@ -178,7 +181,11 @@ files:
178
181
  - app/controllers/educode_sales/sales_controller.rb
179
182
  - app/controllers/educode_sales/sales_details_controller.rb
180
183
  - app/controllers/educode_sales/sessions_controller.rb
184
+ - app/controllers/educode_sales/shixun_dectects_controller.rb
185
+ - app/controllers/educode_sales/shixuns_controller.rb
181
186
  - app/controllers/educode_sales/staffs_controller.rb
187
+ - app/controllers/educode_sales/subject_trends_controller.rb
188
+ - app/controllers/educode_sales/subjects_controller.rb
182
189
  - app/controllers/educode_sales/teacher_follows_controller.rb
183
190
  - app/controllers/educode_sales/teachers_controller.rb
184
191
  - app/controllers/educode_sales/upload_files_controller.rb
@@ -186,12 +193,14 @@ files:
186
193
  - app/helpers/educode_sales/activities_helper.rb
187
194
  - app/helpers/educode_sales/application_helper.rb
188
195
  - app/helpers/educode_sales/assessments_help.rb
196
+ - app/helpers/educode_sales/business_courses_helper.rb
189
197
  - app/helpers/educode_sales/business_helper.rb
190
198
  - app/helpers/educode_sales/follow_up_helper.rb
191
199
  - app/helpers/educode_sales/home_helper.rb
192
200
  - app/helpers/educode_sales/sale_trends_count_helper.rb
193
201
  - app/helpers/educode_sales/sale_trends_helper.rb
194
202
  - app/helpers/educode_sales/sessions_helper.rb
203
+ - app/helpers/educode_sales/subject_helper.rb
195
204
  - app/helpers/educode_sales/teachers_helper.rb
196
205
  - app/jobs/educode_sales/application_job.rb
197
206
  - app/mailers/educode_sales/application_mailer.rb
@@ -208,12 +217,16 @@ files:
208
217
  - app/models/educode_sales/attendance.rb
209
218
  - app/models/educode_sales/business.rb
210
219
  - app/models/educode_sales/business_clazz_change.rb
220
+ - app/models/educode_sales/business_deliver_subject.rb
211
221
  - app/models/educode_sales/business_export_record.rb
212
222
  - app/models/educode_sales/business_history.rb
213
223
  - app/models/educode_sales/business_info.rb
214
224
  - app/models/educode_sales/business_level.rb
215
225
  - app/models/educode_sales/business_number_record.rb
216
226
  - app/models/educode_sales/business_relation_ship.rb
227
+ - app/models/educode_sales/business_subject.rb
228
+ - app/models/educode_sales/business_subject_shixun.rb
229
+ - app/models/educode_sales/business_subject_staff.rb
217
230
  - app/models/educode_sales/business_watch.rb
218
231
  - app/models/educode_sales/common.rb
219
232
  - app/models/educode_sales/contract_date_list.rb
@@ -256,6 +269,7 @@ files:
256
269
  - app/models/educode_sales/sale_report.rb
257
270
  - app/models/educode_sales/sale_trend.rb
258
271
  - app/models/educode_sales/sales_detail.rb
272
+ - app/models/educode_sales/shixun_dectect.rb
259
273
  - app/models/educode_sales/staff.rb
260
274
  - app/models/educode_sales/staff_permission.rb
261
275
  - app/models/educode_sales/staff_school.rb
@@ -296,6 +310,14 @@ files:
296
310
  - app/views/educode_sales/assessments/index.json.jbuilder
297
311
  - app/views/educode_sales/assessments/new.html.erb
298
312
  - app/views/educode_sales/assessments/progress.json.jbuilder
313
+ - app/views/educode_sales/business_courses/edit.html.erb
314
+ - app/views/educode_sales/business_courses/index.html.erb
315
+ - app/views/educode_sales/business_courses/index.json.jbuilder
316
+ - app/views/educode_sales/business_courses/list_shixuns.html.erb
317
+ - app/views/educode_sales/business_courses/list_shixuns.json.jbuilder
318
+ - app/views/educode_sales/business_courses/list_subjects.html.erb
319
+ - app/views/educode_sales/business_courses/list_subjects.json.jbuilder
320
+ - app/views/educode_sales/business_courses/new.html.erb
299
321
  - app/views/educode_sales/businesses/_contract.html.erb
300
322
  - app/views/educode_sales/businesses/_contract_list.html.erb
301
323
  - app/views/educode_sales/businesses/_follows.html.erb
@@ -609,6 +631,13 @@ files:
609
631
  - app/views/educode_sales/sales_details/index.js.erb
610
632
  - app/views/educode_sales/sales_details/index.json.jbuilder
611
633
  - app/views/educode_sales/sessions/login.html.erb
634
+ - app/views/educode_sales/shixun_dectects/index.html.erb
635
+ - app/views/educode_sales/shixun_dectects/index.json.jbuilder
636
+ - app/views/educode_sales/shixun_dectects/markdown.html.erb
637
+ - app/views/educode_sales/shixuns/edit.html.erb
638
+ - app/views/educode_sales/shixuns/index.html.erb
639
+ - app/views/educode_sales/shixuns/index.json.jbuilder
640
+ - app/views/educode_sales/shixuns/new.html.erb
612
641
  - app/views/educode_sales/staffs/edit.html.erb
613
642
  - app/views/educode_sales/staffs/follow_up_departments.json.jbuilder
614
643
  - app/views/educode_sales/staffs/follow_up_schools.json.jbuilder
@@ -616,6 +645,13 @@ files:
616
645
  - app/views/educode_sales/staffs/index.json.jbuilder
617
646
  - app/views/educode_sales/staffs/list.html.erb
618
647
  - app/views/educode_sales/staffs/new.html.erb
648
+ - app/views/educode_sales/subject_trends/trends.html.erb
649
+ - app/views/educode_sales/subjects/edit.html.erb
650
+ - app/views/educode_sales/subjects/index.html.erb
651
+ - app/views/educode_sales/subjects/index.json.jbuilder
652
+ - app/views/educode_sales/subjects/list_shixuns.html.erb
653
+ - app/views/educode_sales/subjects/list_shixuns.json.jbuilder
654
+ - app/views/educode_sales/subjects/new.html.erb
619
655
  - app/views/educode_sales/teacher_follows/index.json.jbuilder
620
656
  - app/views/educode_sales/teachers/_follows.html.erb
621
657
  - app/views/educode_sales/teachers/_index.html.erb