educode_sales 0.9.48 → 0.9.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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/indexlogo.png +0 -0
  3. data/app/controllers/educode_sales/idea_recycles_controller.rb +100 -0
  4. data/app/controllers/educode_sales/ideas_controller.rb +130 -0
  5. data/app/controllers/educode_sales/logs_controller.rb +21 -0
  6. data/app/controllers/educode_sales/teacher_follows_controller.rb +82 -2
  7. data/app/controllers/educode_sales/teachers_controller.rb +18 -3
  8. data/app/models/educode_sales/common.rb +2 -0
  9. data/app/models/educode_sales/idea.rb +87 -0
  10. data/app/models/educode_sales/idea_history.rb +8 -0
  11. data/app/views/educode_sales/idea_recycles/activities.json.jbuilder +9 -0
  12. data/app/views/educode_sales/idea_recycles/add_courses.html.erb +133 -0
  13. data/app/views/educode_sales/idea_recycles/add_event.html.erb +49 -0
  14. data/app/views/educode_sales/idea_recycles/add_keys.html.erb +334 -0
  15. data/app/views/educode_sales/idea_recycles/course_list.json.jbuilder +23 -0
  16. data/app/views/educode_sales/idea_recycles/course_subject.json.jbuilder +10 -0
  17. data/app/views/educode_sales/idea_recycles/daily_paper.html.erb +68 -0
  18. data/app/views/educode_sales/idea_recycles/detail.html.erb +144 -0
  19. data/app/views/educode_sales/idea_recycles/edit.html.erb +193 -0
  20. data/app/views/educode_sales/idea_recycles/edit_follow_record.html.erb +87 -0
  21. data/app/views/educode_sales/idea_recycles/history.html.erb +41 -0
  22. data/app/views/educode_sales/idea_recycles/import.html.erb +41 -0
  23. data/app/views/educode_sales/idea_recycles/index.html.erb +321 -0
  24. data/app/views/educode_sales/idea_recycles/index.json.jbuilder +16 -0
  25. data/app/views/educode_sales/idea_recycles/new.html.erb +204 -0
  26. data/app/views/educode_sales/idea_recycles/new_follow_record.html.erb +93 -0
  27. data/app/views/educode_sales/idea_recycles/search_new.html.erb +138 -0
  28. data/app/views/educode_sales/idea_recycles/show_class.html.erb +107 -0
  29. data/app/views/educode_sales/idea_recycles/show_follow.html.erb +504 -0
  30. data/app/views/educode_sales/idea_recycles/show_follow.json.jbuilder +23 -0
  31. data/app/views/educode_sales/idea_recycles/show_follow_record.html.erb +36 -0
  32. data/app/views/educode_sales/idea_recycles/unfinish_plans.json.jbuilder +14 -0
  33. data/app/views/educode_sales/ideas/activities.json.jbuilder +9 -0
  34. data/app/views/educode_sales/ideas/add_courses.html.erb +133 -0
  35. data/app/views/educode_sales/ideas/add_event.html.erb +49 -0
  36. data/app/views/educode_sales/ideas/add_keys.html.erb +334 -0
  37. data/app/views/educode_sales/ideas/course_list.json.jbuilder +23 -0
  38. data/app/views/educode_sales/ideas/course_subject.json.jbuilder +10 -0
  39. data/app/views/educode_sales/ideas/daily_paper.html.erb +68 -0
  40. data/app/views/educode_sales/ideas/detail.html.erb +144 -0
  41. data/app/views/educode_sales/ideas/edit.html.erb +182 -0
  42. data/app/views/educode_sales/ideas/edit_follow_record.html.erb +87 -0
  43. data/app/views/educode_sales/ideas/history.html.erb +41 -0
  44. data/app/views/educode_sales/ideas/import.html.erb +41 -0
  45. data/app/views/educode_sales/ideas/index.html.erb +335 -0
  46. data/app/views/educode_sales/ideas/index.json.jbuilder +16 -0
  47. data/app/views/educode_sales/ideas/new.html.erb +182 -0
  48. data/app/views/educode_sales/ideas/new_follow_record.html.erb +93 -0
  49. data/app/views/educode_sales/ideas/search_new.html.erb +138 -0
  50. data/app/views/educode_sales/ideas/show_class.html.erb +107 -0
  51. data/app/views/educode_sales/ideas/show_follow.html.erb +504 -0
  52. data/app/views/educode_sales/ideas/show_follow.json.jbuilder +23 -0
  53. data/app/views/educode_sales/ideas/show_follow_record.html.erb +36 -0
  54. data/app/views/educode_sales/ideas/unfinish_plans.json.jbuilder +14 -0
  55. data/app/views/educode_sales/logs/index.html.erb +48 -0
  56. data/app/views/educode_sales/logs/index.json.jbuilder +16 -0
  57. data/app/views/educode_sales/staffs/edit.html.erb +0 -1
  58. data/app/views/educode_sales/teacher_follows/index.json.jbuilder +20 -0
  59. data/app/views/educode_sales/teachers/_follows.html.erb +256 -0
  60. data/app/views/educode_sales/teachers/_index.html.erb +677 -0
  61. data/app/views/educode_sales/teachers/daily_paper.html.erb +22 -22
  62. data/app/views/educode_sales/teachers/index.html.erb +11 -651
  63. data/app/views/educode_sales/teachers/index.json.jbuilder +10 -0
  64. data/app/views/educode_sales/teachers/new.html.erb +9 -3
  65. data/app/views/educode_sales/teachers/new_follow_record.html.erb +6 -0
  66. data/app/views/layouts/educode_sales/application.html.erb +36 -7
  67. data/config/routes.rb +19 -0
  68. data/db/migrate/20230227061043_create_educode_sales_ideas.rb +28 -0
  69. data/db/migrate/20230227070206_change_to_educode_sales_ideas.rb +5 -0
  70. data/db/migrate/20230227125936_add_follow_at_to_teachers.rb +6 -0
  71. data/db/migrate/20230228063555_create_educode_sales_idea_histories.rb +10 -0
  72. data/db/migrate/20230302074324_change_manager_for_ideas.rb +6 -0
  73. data/lib/educode_sales/version.rb +1 -1
  74. metadata +66 -6
@@ -0,0 +1,133 @@
1
+ <div class="layuimini-main" style="height: 100%;">
2
+ <div class="layui-form layuimini-form" lay-filter="common_edit">
3
+ <fieldset class="table-search-fieldset">
4
+ <legend>添加课程方向</legend>
5
+ <div class="layui-form-item">
6
+ <label class="layui-form-label required" >课程名称</label>
7
+ <div class="layui-input-block">
8
+ <input type="text" name="name" autocomplete="off" class="layui-input" placeholder="请输入" required lay-verify="required">
9
+ </div>
10
+ </div>
11
+ <div class="layui-form-item">
12
+ <label class="layui-form-label required" >教学角色</label>
13
+ <div class="layui-input-block">
14
+ <input type="text" name="role_name" autocomplete="off" class="layui-input" placeholder="请输入" required lay-verify="required">
15
+ </div>
16
+ </div>
17
+ <hr>
18
+ <div class="layui-form-item">
19
+ <div class="layui-input-block">
20
+ <button class="layui-btn layui-btn-normal" lay-submit lay-filter="add_course">确定添加</button>
21
+ </div>
22
+ </div>
23
+ </fieldset>
24
+ <h4 class="m-t-10">课程方向列表</h4>
25
+ <table class="layui-hide" id="coursesTable" lay-filter="coursesTable"></table>
26
+ </div>
27
+ </div>
28
+
29
+ <script type="text/html" id="courses_bar1">
30
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">保存</a>
31
+ <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
32
+ </script>
33
+
34
+ <script>
35
+ layui.use(['table', 'element'], function () {
36
+ var form = layui.form,
37
+ layer = layui.layer,
38
+ table = layui.table,
39
+ laytpl = layui.laytpl,
40
+ request = layui.request,
41
+ $ = layui.$;
42
+
43
+ form.render();
44
+
45
+ // 当前弹出层,防止ID被覆盖
46
+ var parentIndex = layer.index;
47
+
48
+
49
+ //监听提交
50
+ form.on('submit(add_course)', function (data) {
51
+ request.authPost('missions/teachers/'+parent.teacher_id +'/create_course', data.field, function (res) {
52
+ if (res.success == false) {
53
+ layer.alert(res.msg)
54
+ } else {
55
+ table.reload('teachers_table');
56
+ table.reload('coursesTable');
57
+ form.val('common_edit', {
58
+ 'name': '',
59
+ 'role_name':''
60
+ })
61
+ }
62
+ })
63
+ return false;
64
+ });
65
+
66
+
67
+
68
+ table.render({
69
+ elem: '#coursesTable',
70
+ url: '/missions/teachers/' + parent.id + "/course_subject",
71
+ defaultToolbar: [],
72
+ cols: [
73
+ [
74
+ {
75
+ field: 'id',
76
+ width:100,
77
+ title:'序号',type: 'numbers',
78
+ },
79
+ {
80
+ field: 'name',
81
+ title: '课程名称',
82
+ width:300,
83
+ edit: true
84
+ },
85
+ {
86
+ field: 'role_name',
87
+ title: '教学角色',
88
+ width:300,
89
+ edit: true
90
+ },
91
+ {
92
+ title: '操作',
93
+ toolbar: '#courses_bar1',
94
+ align: "center"
95
+ }
96
+ ]
97
+ ],
98
+ //
99
+ //
100
+ // page: true,
101
+ skin: 'line'
102
+ });
103
+
104
+
105
+
106
+ table.on('tool(coursesTable)', function (obj) {
107
+ var data = obj.data;
108
+ if (obj.event === 'edit') {
109
+ console.log(data);
110
+ request.authPut('missions/teachers/' + data.id + '/update_course/', data,
111
+ function(res) {
112
+ if (res.success) {
113
+ table.reload('coursesTable');
114
+ } else {
115
+ layer.alert(res.msg)
116
+ }
117
+
118
+ })
119
+ } else if (obj.event === 'delete') {
120
+ console.log(data);
121
+ layer.confirm('确定删除' + data.name, function (index) {
122
+ request.delete('missions/teachers/' + data.id + '/delete_course/', {}, function (res) {
123
+ layer.close(index);
124
+ table.reload("teachers_table")
125
+ table.reload('coursesTable');
126
+ })
127
+ });
128
+ }
129
+ });
130
+
131
+
132
+ });
133
+ </script>
@@ -0,0 +1,49 @@
1
+ <table class="layui-hide" id="eventTable" lay-filter="event_filter"></table>
2
+
3
+ <script type="text/html" id="event_bar">
4
+ <!-- <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a> -->
5
+ <!-- <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a> -->
6
+ </script>
7
+
8
+ <script>
9
+ layui.use('element', function () {
10
+ var element = layui.element;
11
+ });
12
+ layui.use(['table', 'element'], function () {
13
+ var $ = layui.jquery,
14
+ form = layui.form,
15
+ table = layui.table,
16
+ element = layui.element,
17
+ miniPage = layui.miniPage;
18
+ table.render({
19
+ elem: '#eventTable',
20
+ url: '/missions/teachers/activities?id=' + parent.teacher_id,
21
+ defaultToolbar: [],
22
+ cols: [
23
+ [
24
+ {
25
+ field: 'id',
26
+ title:'序号',type: 'numbers',
27
+ width: 80,
28
+ },
29
+ {
30
+ field: 'name',
31
+ width: 300,
32
+ title: '活动名称'
33
+ },
34
+ {
35
+ field: 'start_at',
36
+ width: 190,
37
+ title: '开始时间',
38
+ },
39
+ {
40
+ title: '操作',
41
+ toolbar: '#event_bar',
42
+ align: "center"
43
+ }
44
+ ]
45
+ ],
46
+ page: true
47
+ });
48
+ });
49
+ </script>
@@ -0,0 +1,334 @@
1
+ <%= Gon::Base.render_data %>
2
+ <div class="layuimini-main edit-table" >
3
+ <div class="layui-form layuimini-form" lay-filter="teacher_form" id="show_follow_box">
4
+ <fieldset class="table-search-fieldset">
5
+ <legend>添加关键人</legend>
6
+ <div class="layui-form-item">
7
+ <div class="layui-input-inline" style="width: 610px;">
8
+ <label class="layui-form-label required">姓名</label>
9
+ <div class="layui-input-block">
10
+ <div class="" id="teacher"></div>
11
+ </div>
12
+ </div>
13
+ <div class="layui-input-inline" style="width: 610px;" id="professional_title_div">
14
+ <p style="padding-top: 6px">关键人未在头歌主站注册时,请先将关键人添加到教师运营列表。
15
+ <a style="color: #0000FF" href="javascript:void(0);" id="new_teacher1" >添加老师</a>
16
+ </p>
17
+ </div>
18
+ </div>
19
+ <div class="layui-form-item">
20
+ <div class="layui-input-inline" style="width: 300px;">
21
+ <label class="layui-form-label ">职务</label>
22
+ <div class="layui-input-block">
23
+ <input type="text" name="job" autocomplete="off"
24
+ placeholder="请输入职务" class="layui-input" id="add_job" value="<%= @person&.job %>">
25
+ </div>
26
+ </div>
27
+ <div class="layui-input-inline" style="width: 300px;" id="professional_title_div">
28
+ <label class="layui-form-label ">职称</label>
29
+ <div class="layui-input-block">
30
+ <%= select_tag "professional_title", options_for_select(['教授', '研究员', '副教授', '副研究员', '讲师', '助理研究员', '助理教授'], @person&.professional_title), class: 'required' %>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ <div class="layui-form-item">
35
+ <div class="layui-input-inline" style="width: 300px;">
36
+ <label class="layui-form-label">性别</label>
37
+ <div class="layui-input-block">
38
+ <%= select_tag "sex", options_for_select(['男', '女'], @person&.sex) %>
39
+ </div>
40
+ </div>
41
+ <div class="layui-input-inline" style="width: 300px;">
42
+ <label class="layui-form-label ">态度</label>
43
+ <div class="layui-input-block">
44
+ <%= select_tag "attitude_id", options_for_select(@attitudes, @person&.attitude_id), {include_blank: true} %>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ <div class="layui-form-item">
49
+ <div class="layui-input-inline" style="width: 300px;">
50
+ <label class="layui-form-label">生日</label>
51
+ <div class="layui-input-block" style="width: 190px;">
52
+ <input type="text" class="layui-input" name="birth_date" autocomplete="off" value="<%= @person&.birth_date %>"
53
+ id="birth" placeholder="请选择生日">
54
+ </div>
55
+ </div>
56
+ <div class="layui-input-inline" style="width: 300px;">
57
+ <label class="layui-form-label required">联系方式</label>
58
+ <div class="layui-input-block">
59
+ <input type="text" class="layui-input" name="tel" autocomplete="off" value="" lay-verify="required"
60
+ id="tel" placeholder="请输入联系方式">
61
+ </div>
62
+ </div>
63
+ </div>
64
+ <div class="layui-form-item layui-form-text m-t-20">
65
+ <label class="layui-form-label">其它信息</label>
66
+ <div class="layui-input-block">
67
+ <textarea name="remark" placeholder="其他信息"
68
+ class="layui-textarea"><%= @person&.remark %></textarea>
69
+ </div>
70
+ </div>
71
+ <div class="layui-form-item">
72
+ <div class="layui-input-block">
73
+ <button class="layui-btn layui-btn-normal" lay-submit lay-filter="add_keys">提交</button>
74
+ </div>
75
+ </div>
76
+ </fieldset>
77
+ </div>
78
+
79
+
80
+ <h4 class="m-t-10">关键人列表</h4>
81
+ <table class="layui-hide" id="key_person" style="min-height: 300px;" lay-filter="key_person"></table>
82
+ </div>
83
+
84
+ <script type="text/html" id="attitude_select">
85
+ <div class="layui-input-block table-select">
86
+ <select name="attitude_id" lay-filter="select_attitude_id">
87
+ {{# layui.each(gon.attitudes, function(i, data) { }}
88
+ {{# if (data[1] == d.attitude_id) { }}
89
+ <option value=""></option>
90
+ <option value="{{data[1]}}" selected="{{data[0]}}">{{data[0]}}</option>
91
+ {{# } else { }}
92
+ <option value=""></option>
93
+ <option value="{{data[1]}}">{{data[0]}}</option>
94
+ {{# }}}
95
+
96
+ {{# }) }}
97
+ </select>
98
+ </div>
99
+ </script>
100
+ <script type="text/html" id="sex_select">
101
+ <div class="layui-input-block table-select">
102
+ <select name="sex" lay-filter="select_sex">
103
+ {{# layui.each(['男', '女'], function(i, data) { }}
104
+ {{# if (data == d.sex) { }}
105
+ <option value="{{data}}" selected="{{d.sex}}">{{data}}</option>
106
+ {{# } else { }}
107
+ <option value="{{data}}">{{data}}</option>
108
+ {{# }}}
109
+ {{# }) }}
110
+ </select>
111
+ </div>
112
+ </script>
113
+ <script type="text/html" id="date_input">
114
+ <div class="layui-input-block table-select">
115
+ <input type="text" class="layui-input date" name="birth_date" autocomplete="off" placeholder="请选择生日">
116
+ </div>
117
+ </script>
118
+ <script type="text/html" id="key_person_tabar">
119
+ {{# if(parent.is_latest && parent.flag){ }}
120
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">保存</a>
121
+ <a class="layui-btn layui-btn-danger layui-btn-xs data-count-edit" lay-event="delete">删除</a>
122
+ {{# } }}
123
+ </script>
124
+ <script>
125
+ if(!parent.is_latest || !parent.flag){
126
+ document.getElementById("show_follow_box").style.display="none";//隐藏
127
+ }
128
+ layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'laydate', 'selectInput'], function () {
129
+ var form = layui.form,
130
+ layer = layui.layer,
131
+ table = layui.table,
132
+ laytpl = layui.laytpl,
133
+ laydate = layui.laydate,
134
+ miniPage = layui.miniPage,
135
+ request = layui.request,
136
+ selectInput = layui.selectInput,
137
+ $ = layui.$;
138
+
139
+ form.render();
140
+ laydate.render({
141
+ elem: '#birth'
142
+ })
143
+
144
+ $(document).on('click','#new_teacher1',function(){
145
+ var content = miniPage.getHrefContent('/missions/teachers/new');
146
+ var openWH = miniPage.getOpenWidthHeight();
147
+ teacher_uni_index = layer.open({
148
+ id:"a",
149
+ title: '添加老师',
150
+ type: 1,
151
+ shade: 0.2,
152
+ maxmin: true,
153
+ shadeClose: true,
154
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
155
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
156
+ content: content,
157
+ });
158
+ $(window).on("resize", function () {
159
+ layer.full(sindex);
160
+ });
161
+ });
162
+
163
+ var user_input = selectInput.render({
164
+ elem: '#teacher',
165
+ name: 'name', // 渲染的input的name值
166
+ layFilter: 'teacher',
167
+ layVerify: 'required',
168
+ layVerType: 'tips',
169
+ layReqText: '请填写文本',
170
+ initValue: (gon.teacher ? gon.teacher : ''),
171
+ hasSelectIcon: false,
172
+ placeholder: '请输入头歌平台上用户名/老师姓名',
173
+ data: gon.teachers ? [gon.teachers] : [],
174
+ remoteSearch: true,
175
+ remoteMethod: function (value, cb) {
176
+ if (!value) {
177
+ return cb([]);
178
+ }
179
+ request.get('missions/search_teacher?q=' + value, {}, function(res) {
180
+ return cb(res)
181
+ })
182
+ }
183
+ });
184
+ user_input.on('itemSelect(teacher)', function (obj) {
185
+ if (obj.extras) {
186
+ var extras = obj.extras.split(",");
187
+ $("#add_job")[0].value = extras[1];
188
+ $("#add_job")[0].setAttribute("disabled", true);
189
+ $("#professional_title")[0].setAttribute("disabled", true);
190
+ form.val('teacher_form', {
191
+ "professional_title": extras[0]
192
+ })
193
+ } else {
194
+ $("#add_job")[0].removeAttribute("disabled");
195
+ $("#professional_title")[0].removeAttribute("disabled");
196
+ }
197
+ form.render('select');
198
+ });
199
+
200
+ //监听提交
201
+ form.on('submit(add_keys)', function (data) {
202
+ data.field.name = user_input.getValue()
203
+ if (data.field.name == "") {
204
+ data.field.name = gon.teacher;
205
+ }
206
+
207
+ request.authPost("missions/follow_ups/" + parent.follow_up_id + "/add_keys", data.field, function (res) {
208
+ if (res.success == false) {
209
+ layer.alert(res.msg)
210
+ } else {
211
+ parent.table.reload('sale_plan_follow_table');
212
+ parent.table.reload('businesses_table');
213
+ table.reload('key_person');
214
+ layer.alert('添加成功')
215
+ form.val('teacher_form', {
216
+ 'name': '',
217
+ 'job': '',
218
+ 'professional_title': '',
219
+ 'birth_date': '',
220
+ 'sex': '',
221
+ 'attitude_id': '',
222
+ 'remark': '',
223
+ 'tel': ''
224
+ })
225
+ }
226
+ })
227
+ return false;
228
+ });
229
+
230
+ table.render({
231
+ elem: '#key_person',
232
+ url: '/missions/follow_ups/' + parent.follow_up_id + '/teachers',
233
+ cols: [
234
+ [{
235
+ field: 'id',
236
+ width: 80,
237
+ title:'序号',type: 'numbers',
238
+ sort: true
239
+ }, {
240
+ field: 'name',
241
+ width: 150,
242
+ title: '姓名',
243
+ edit: true
244
+ }, {
245
+ field: 'job',
246
+ width: 120,
247
+ title: '职务'
248
+ }, {
249
+ field: 'professional_title',
250
+ width: 120,
251
+ title: '职称'
252
+ }, {
253
+ field: 'attitude',
254
+ width: 190,
255
+ title: '态度',
256
+ templet: "#attitude_select"
257
+ }, {
258
+ field: 'sex',
259
+ width: 190,
260
+ title: '性别',
261
+ templet: "#sex_select"
262
+ }, {
263
+ field: 'birth_date',
264
+ width: 170,
265
+ title: '生日',
266
+ templet:function (d) {
267
+ return '<input type="text" class="layui-input layui-input-date" value="'+ (d.birth_date || '') +'" autocomplete="off">'
268
+ }
269
+ }, {
270
+ field: 'tel',
271
+ width: 200,
272
+ title: '联系方式',
273
+ edit: true
274
+ }, {
275
+ }, {
276
+ field: 'remark',
277
+ width: 200,
278
+ title: '其他信息',
279
+ edit: true
280
+ }, {
281
+ title: '操作',
282
+ minWidth: 170,
283
+ toolbar: '#key_person_tabar'
284
+ }]
285
+ ],
286
+ page: true,
287
+ done: function (res) {
288
+ $(".layui-input-date").each(function (i) {
289
+ layui.laydate.render({
290
+ elem: this,
291
+ format: "yyyy-MM-dd",
292
+ done: function (value, date) {
293
+ if (res && res.data[i]) {
294
+ $.extend(res.data[i], {'birth_date': value || ''})
295
+ }
296
+ }
297
+ })
298
+ })
299
+ }
300
+ });
301
+ var attitude_id, sex;
302
+ form.on("select(select_attitude_id)", function(obj) {
303
+ attitude_id = obj.value
304
+ })
305
+ form.on("select(select_sex)", function(obj) {
306
+ sex = obj.value
307
+ })
308
+ table.on('tool(key_person)', function (obj) {
309
+ var data = obj.data;
310
+ data.attitude_id = attitude_id;
311
+ data.sex = sex;
312
+ if (obj.event === 'edit') {
313
+ request.authPut('missions/key_person/' + data.id, data,
314
+ function (res) {
315
+ if (res.success) {
316
+ table.reload('key_person')
317
+ } else {
318
+ layer.alert(res.msg)
319
+ }
320
+
321
+ })
322
+ } else if (obj.event == 'delete') {
323
+ layer.confirm('确定删除关键人' + data.name, function (index) {
324
+ request.delete('missions/key_person/'+ data.id, {}, function(res) {
325
+ layer.close(index);
326
+ table.reload("key_person")
327
+ table.reload("sale_plan_follow_table")
328
+ })
329
+ });
330
+ }
331
+ });
332
+
333
+ });
334
+ </script>
@@ -0,0 +1,23 @@
1
+ json.data do
2
+ json.array! @courses do |d|
3
+ json.id d.id
4
+ json.name d.name
5
+ json.teachers d.teacher_course_members.count
6
+ json.students d.students.count
7
+ json.attachments d.attachments.count
8
+ json.informs d.informs.count
9
+ json.videos d.course_videos.count
10
+ json.normal d.course_homework_count("normal")
11
+ json.group d.course_homework_count("group")
12
+ json.practice d.course_homework_count("practice")
13
+ json.student_works_count d.student_works_count
14
+ json.exercises_count d.exercises_count
15
+ json.evaluate_count d.evaluate_count
16
+ json.is_public d.is_public == 1 ? "--" : "√"
17
+ json.status d.is_end ? "已结束" : "正在进行"
18
+ json.created_at d.created_at.to_s
19
+ end
20
+ end
21
+ json.code 0
22
+ json.count @courses.present? ? @courses.total_count : 0
23
+ json.msg 'succcess'
@@ -0,0 +1,10 @@
1
+ json.data do
2
+ json.array! @courses do |d|
3
+ json.id d.id
4
+ json.name d.name
5
+ json.role_name d.role_name
6
+ json.teacher_id d.teacher_id
7
+ end
8
+ end
9
+ json.code 0
10
+ json.count @courses.count
@@ -0,0 +1,68 @@
1
+ <div style="padding: 15px;" id="day_content">
2
+ <h2>生态经理日报-转正后</h2>
3
+ <hr>
4
+ <div style="height: 450px;overflow: auto;">
5
+
6
+ <p>一、数据指标</p>
7
+ <p>1、【教师合作-老客户运营】</p>
8
+ <p>本月目标<%= @num_1 %>人;</p>
9
+ <p>累计完成xx人; </p>
10
+ <p>今日已完成沟通xx人;</p>
11
+ <p style="margin-bottom: 30px;">今日已完成新建课堂xx个;</p>
12
+ <p>2、【市场活动-新客户注册】</p>
13
+ <p>本月目标xx人;</p>
14
+ <p>累计完成xx人;</p>
15
+ <p style="margin-bottom: 30px;">今日已完成转化注册xx人;</p>
16
+ <p>3、课程建设-新型态教材合作】</p>
17
+ <p>本月目标xx门课程(教材);</p>
18
+ <p>累计完成xx门课程(教材);</p>
19
+ <p style="margin-bottom: 30px;">今日已完成挖掘xx门课程(教材);</p>
20
+ <p>二、客户跟进情况</p>
21
+ <p style="margin-bottom: 30px;">(填写每日重点客户沟通内容,可涵盖总部安排的重要工作事项) </p>
22
+ <p>三、商机与项目线索</p>
23
+ <p style="margin-bottom: 30px;">(在运营过程中发现的商机以及小toB非招标项目商机:saas课程、在线考试等)</p>
24
+ <p>四、需要支持事宜索</p>
25
+ <p style="margin-bottom: 30px;">(业务上遇到的难点问题)</p>
26
+ </div>
27
+
28
+ <% text = "\n" %>
29
+ <% text += "一、数据指标\n" %>
30
+ <% text += "1、【教师合作-老客户运营】\n" %>
31
+ <% text += "本月目标xx人;\n" %>
32
+ <% text += "累计完成xx人;\n" %>
33
+ <% text += "今日已完成沟通xx人;\n" %>
34
+ <% text += "今日已完成新建课堂xx个;\n\n" %>
35
+ <% text += "2、【市场活动-新客户注册】\n" %>
36
+ <% text += "本月目标xx人\n" %>
37
+ <% text += "累计完成xx人\n" %>
38
+ <% text += "今日已完成挖掘xx门课程(教材)\n\n" %>
39
+ <% text += "3、课程建设-新型态教材合作】\n" %>
40
+ <% text += "本月目标xx门课程(教材);\n" %>
41
+ <% text += "累计完成xx门课程(教材);\n" %>
42
+ <% text += "今日已完成挖掘xx门课程(教材);\n\n" %>
43
+ <% text += "二、客户跟进情况\n" %>
44
+ <% text += "(填写每日重点客户沟通内容,可涵盖总部安排的重要工作事项\n\n" %>
45
+ <% text += "三、商机与项目线索\n" %>
46
+ <% text += "(在运营过程中发现的商机以及小toB非招标项目商机:saas课程、在线考试等)\n\n" %>
47
+ <% text += "四、需要支持事宜索\n" %>
48
+ <% text += "(业务上遇到的难点问题)\n\n" %>
49
+ <% text += "头歌营销系统 \n"%>
50
+ <% text += "#{Time.now.to_s}"%>
51
+ <div id="content" style="display: none;" data-content="生态经理日报-转正后<%=text %>"></div>
52
+ <p>头歌营销系统</p>
53
+ <p><%= Time.now.to_s %></p>
54
+ <button type="button" onclick="copy()" style=" margin-right: 20px; float: right;" class="layui-btn layui-btn-primary">复制</button>
55
+ </div>
56
+ <script>
57
+ function copy() {
58
+ var copyText = document.getElementById("content").dataset.content;
59
+ var textArea = document.createElement("textarea");
60
+ textArea.value = copyText;
61
+ document.body.appendChild(textArea);
62
+ textArea.select();
63
+ if (document.execCommand("Copy")) {
64
+ layer.msg('已复制到剪贴板');
65
+ textArea.remove();
66
+ }
67
+ }
68
+ </script>