educode_sales 1.10.48 → 1.10.49

Sign up to get free protection for your applications and to get access to all the features.
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