educode_sales 0.9.48 → 0.9.50

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 +40 -8
  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,16 @@
1
+ json.data do
2
+ json.array! @ideas do |d|
3
+ json.(d, :id, :name, :level, :status, :types, :model, :content)
4
+ json.school d.school&.name
5
+ json.staff d.staff&.user&.real_name
6
+ json.hardware d.hardware.to_f.round(2)
7
+ json.project d.project.to_i
8
+ json.money d.money.to_f.round(2)
9
+ json.end_time d.end_time.to_s
10
+ json.creator d.creator&.user&.real_name
11
+ json.deleter d.deleter&.user&.real_name
12
+ json.history_type d.history_type.to_i == 0 ? "无" : "有"
13
+ end
14
+ end
15
+ json.code 0
16
+ json.count @ideas.total_count
@@ -0,0 +1,204 @@
1
+ <div class="layui-form layuimini-form">
2
+ <div class="layui-form-item" style="padding: 25px">
3
+ <div class="layui-block">
4
+ <div class="layui-inline">
5
+ <label class="layui-form-label required">姓名</label>
6
+ <div class="layui-input-block" id="add_teacher" style="width: 400px"></div>
7
+ </div>
8
+ </div>
9
+ <div class="layui-block">
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label required">单位/部门</label>
12
+ <div class="layui-input-block" id="add_department" style="width: 400px"></div>
13
+ </div>
14
+ </div>
15
+ <div class="layui-block">
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label ">职称</label>
18
+ <div class="layui-input-block">
19
+ <%= select_tag "professional_title", options_for_select(['教授', '研究员', '副教授', '副研究员', '讲师', '助理研究员', '助理教授'], @person&.professional_title), { include_blank: true} %>
20
+ </div>
21
+ </div>
22
+ <div class="layui-inline">
23
+ <label class="layui-form-label ">职务</label>
24
+ <div class="layui-input-block" style="width: 188px;">
25
+ <input type="text" name="job" autocomplete="off" class="layui-input" placeholder="请输入职务">
26
+ </div>
27
+ </div>
28
+ </div>
29
+ <div class="layui-block">
30
+ <div class="layui-inline">
31
+ <label class="layui-form-label ">来源</label>
32
+ <div class="layui-input-block">
33
+ <%= select_tag "source_id", options_for_select(EducodeSales::Common.where(clazz: 'teacher_source').pluck(:name, :id)), { include_blank: true } %>
34
+ </div>
35
+ </div>
36
+ <div class="layui-inline">
37
+ <label class="layui-form-label ">微信号</label>
38
+ <div class="layui-input-block">
39
+ <input type="text" name="wechat" autocomplete="off" class="layui-input" placeholder="请输入微信号">
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div class="layui-form-item">
44
+ <label class="layui-form-label">教研助理</label>
45
+ <div class="layui-input-inline" style="z-index: 100">
46
+ <div id="teacher_assist" style="width: 400px;"></div>
47
+ </div>
48
+ </div>
49
+ <div class="layui-form-item m-t-20">
50
+ <div class="layui-input-block">
51
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="create_teachers"
52
+ style="margin-left: 18px">提交
53
+ </button>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ <script>
59
+ layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput'], function () {
60
+ var form = layui.form,
61
+ layer = layui.layer,
62
+ table = layui.table,
63
+ laytpl = layui.laytpl,
64
+ xmSelect = layui.xmSelect,
65
+ request = layui.request,
66
+ $ = layui.$;
67
+ selectInput = layui.selectInput;
68
+
69
+ form.render();
70
+
71
+ var teacher_assist_list = xmSelect.render({
72
+ el: '#teacher_assist',
73
+ remoteSearch: true,
74
+ clickClose: true,
75
+ delay: 1000,
76
+ paging: true,
77
+ pageRemote: true,
78
+ filterable: true,
79
+ remoteMethod: function (val, cb, show, pageIndex) {
80
+ $.ajax( '/missions/sales_staff?teacher_assist=true', {
81
+ method: 'get',
82
+ data: {
83
+ q: val,
84
+ page: pageIndex
85
+ },
86
+ dataType: 'json',
87
+ success: function (res) {
88
+ var data = res.data;
89
+ if (res.code == 0) {
90
+ cb(res.data, res.count);
91
+ } else {
92
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
93
+ }
94
+
95
+ }
96
+ })
97
+ }
98
+ })
99
+
100
+ var add_teacher = selectInput.render({
101
+ elem: '#add_teacher',
102
+ name: 'name', // 渲染的input的name值
103
+ layFilter: 'teacher_id', //同layui form参数lay-filter
104
+ layVerify: 'required', //同layui form参数lay-verify
105
+ layVerType: 'tips', // 同layui form参数lay-verType
106
+ layReqText: '请填写文本', //同layui form参数lay-ReqText
107
+ initValue: '', // 渲染初始化默认值
108
+ hasSelectIcon: false,
109
+ placeholder: '支持姓名/手机号/邮箱搜索', // 渲染的inputplaceholder值
110
+ data: [],
111
+ remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
112
+ remoteMethod: function (value, cb) { // 远程搜索的回调函数
113
+ if (!value) {
114
+ return cb([]);
115
+ }
116
+ request.get('missions/search_edu_teacher?q=' + value, {}, function (res) {
117
+ return cb(res)
118
+ })
119
+ }
120
+ });
121
+ var add_department = selectInput.render({
122
+ elem: '#add_department',
123
+ name: 'department_id',
124
+ layFilter: 'department_id',
125
+ layVerify: 'required',
126
+ layVerType: 'tips',
127
+ layReqText: '请填写文本',
128
+ initValue: '',
129
+ hasSelectIcon: false,
130
+ placeholder: '搜索平台上单位/部门',
131
+ data: [],
132
+ remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
133
+ remoteMethod: function (value, cb) { // 远程搜索的回调函数
134
+ if (!value) {
135
+ return cb([]);
136
+ }
137
+ request.get('missions/search?type=department&q=' + value, {}, function (res) {
138
+ return cb(res)
139
+ })
140
+ }
141
+ });
142
+
143
+ var department_id, user_id;
144
+ add_teacher.on('itemInput(add_teacher)', function (obj) {
145
+ department_id = '';
146
+ user_id = '';
147
+ });
148
+
149
+ add_department.on('itemClear(add_department)', function() {
150
+ if (department_id == "" || add_department == undefined) {
151
+ add_department.setValue("");
152
+ } else {
153
+ add_department.setValue("");
154
+ }
155
+ })
156
+
157
+ add_teacher.on('itemClear(add_teacher)', function() {
158
+ add_department.setValue("")
159
+ })
160
+
161
+ add_teacher.on('itemSelect(add_teacher)', function (obj) {
162
+ user_id = obj.data;
163
+ var name = obj.textContent.split("--")[0]
164
+ add_teacher.setValue(name)
165
+ if (obj.extras.split("---")[1]) {
166
+ department_id = obj.extras.split("---")[0];
167
+ add_department.setValue(obj.extras.split("---")[1])
168
+ }
169
+ });
170
+
171
+ add_department.on('itemSelect(add_department)', function (obj) {
172
+ department_id = obj.data;
173
+ })
174
+
175
+ //监听提交
176
+ form.on('submit(create_teachers)', function (data) {
177
+ var teacher_assist = [];
178
+ teacher_assist_list.getValue().forEach(function(d) {
179
+ teacher_assist.push(d.value);
180
+ })
181
+ data.field.teacher_assist = teacher_assist;
182
+ data.field.user_id = user_id;
183
+ data.field.department_id = department_id;
184
+ data.field.activity_id = parent.activity_id;
185
+ if (department_id == "") {
186
+ return layer.alert("请选择单位部门")
187
+ }
188
+ request.authPost("missions/teachers", data.field, function (res) {
189
+ if (res.success == false) {
190
+ layer.alert(res.msg)
191
+ } else {
192
+ table.reload('show_teachers_table');
193
+ table.reload('activities_table');
194
+ table.reload('teachers_table');
195
+ layer.close(parent.index)
196
+ layer.close(parent.sindex)
197
+ layer.close(parent.teacher_uni_index)
198
+ }
199
+ })
200
+ return false;
201
+ });
202
+
203
+ });
204
+ </script>
@@ -0,0 +1,93 @@
1
+ <form class="layui-form " action="">
2
+ <div class="layui-form-item" style="padding: 25px">
3
+ <div class="layui-inline">
4
+ <label class="layui-form-label">教师态度</label>
5
+ <div class="layui-input-inline">
6
+ <%= select_tag "attitude_id",options_for_select(EducodeSales::Common.where(clazz: "teacher_attitude").pluck(:name, :id))%>
7
+ </div>
8
+ </div>
9
+ <div class="layui-inline">
10
+ <label class="layui-form-label">开课计划</label>
11
+ <div class="layui-input-inline">
12
+ <%= select_tag "course_plan_id",options_for_select(EducodeSales::Common.where(clazz: "course_plan").pluck(:name, :id))%>
13
+ </div>
14
+ </div>
15
+ <br>
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label">课堂建设</label>
18
+ <div class="layui-input-inline">
19
+ <%= select_tag "course_build_id",options_for_select(EducodeSales::Common.where(clazz: "course_build").pluck(:name, :id))%>
20
+ </div>
21
+ </div>
22
+ <div class="layui-inline">
23
+ <label class="layui-form-label">跟进手段</label>
24
+ <div class="layui-input-inline">
25
+ <%= select_tag "follow_id",options_for_select(EducodeSales::Common.where(clazz: "contact").pluck(:name, :id))%>
26
+ </div>
27
+ </div>
28
+ <br>
29
+ <div class="layui-form-item layui-form-text">
30
+ <label class="layui-form-label">跟进小结</label>
31
+ <div class="layui-input-block">
32
+ <textarea name="description" placeholder="此处可以填写:
33
+ 1、教师关注的痛点问题;
34
+ 2、教师关注的教学项目、教学成果类型;
35
+ 3、其他个性化需求,以及应对情况说明;
36
+ 4、目前态度的产生原因等。
37
+ " class="layui-textarea"></textarea>
38
+ </div>
39
+ </div>
40
+ <div class="layui-inline" style="padding-left: 50px">
41
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="add_follow_up">提交
42
+ </button>
43
+ </div>
44
+ </div>
45
+ </form>
46
+
47
+
48
+
49
+
50
+ <script>
51
+ layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'laydate'], function () {
52
+ var form = layui.form,
53
+ layer = layui.layer,
54
+ table = layui.table,
55
+ laytpl = layui.laytpl,
56
+ request = layui.request,
57
+ laydate = layui.laydate,
58
+ $ = layui.$;
59
+
60
+ // laydate.render({
61
+ // elem: '#invitation_at_add'
62
+ // })
63
+ //
64
+ // laydate.render({
65
+ // elem: '#reception_at_add'
66
+ // });
67
+
68
+ form.render();
69
+
70
+ form.on('submit(add_follow_up)', function (data) {
71
+ data.field.teacher_id = "<%= @teacher.id %>";
72
+ request.authPost("missions/teacher_follows", data.field, function (res) {
73
+ if (res.success == false) {
74
+ layer.alert(res.msg)
75
+ } else {
76
+ layer.close(parent.sale_plan_index);
77
+ parent.layer.close(parent.layer.getFrameIndex(window.name))
78
+ parent.table.reload('sale_plan_follow_table')
79
+ parent.table.reload('teachers_table')
80
+ parent.table.reload('weekPlanTable1')
81
+ parent.table.reload('monthPlanTable')
82
+ parent.table.reload('monthlyTable')
83
+ parent.table.reload('weeklyTable')
84
+ table.reload('show_teachers_table')
85
+ }
86
+ })
87
+
88
+
89
+ return false;
90
+ });
91
+
92
+ });
93
+ </script>
@@ -0,0 +1,138 @@
1
+ <div class="layui-form layuimini-form">
2
+ <div class="layui-form-item" style="padding-left: 25px;padding-top: 25px">
3
+ <div class="layui-inline">
4
+ <label class="layui-form-label ">名称</label>
5
+ <div class="layui-input-block">
6
+ <input type="text" name="name" autocomplete="off" lay-verify="required" class="layui-input">
7
+ </div>
8
+ </div>
9
+ <div class="layui-inline">
10
+ <label class="layui-form-label ">单位</label>
11
+ <div class="layui-input-block">
12
+ <input type="text" name="name" autocomplete="off" lay-verify="required" class="layui-input">
13
+ </div>
14
+ </div>
15
+ <div class="layui-inline">
16
+ <button class="layui-btn layui-btn-normal" lay-submit lay-filter="create_business">搜索</button>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ <div style="padding-left: 40px">
21
+ <table class="layui-hide" id="keyTable"></table>
22
+ <div class="layui-inline">
23
+ <button class="layui-btn layui-btn-normal">提交</button>
24
+ <button class="layui-btn layui-btn-normal">取消</button>
25
+ </div>
26
+ </div>
27
+ <script>
28
+ layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput'], function () {
29
+ var form = layui.form,
30
+ layer = layui.layer,
31
+ table = layui.table,
32
+ laytpl = layui.laytpl,
33
+ request = layui.request,
34
+ $ = layui.$;
35
+ selectInput = layui.selectInput;
36
+
37
+ form.render();
38
+
39
+ // 当前弹出层,防止ID被覆盖
40
+ var parentIndex = layer.index;
41
+
42
+
43
+ table.render({
44
+ elem: '#keyTable',
45
+ defaultToolbar: [],
46
+ cols: [
47
+ [
48
+ {type: 'checkbox'},
49
+ {
50
+ field: 'id',
51
+ width: 80,
52
+ title: '姓名'
53
+ },
54
+ {
55
+ field: 'username',
56
+ width: 120,
57
+ title: '手机'
58
+ },
59
+ {
60
+ field: 'zhi',
61
+ width: 120,
62
+ title: '邮箱',
63
+ },
64
+ {
65
+ field: 'tai',
66
+ width: 120,
67
+ title: '学校/单位'
68
+ },
69
+ {
70
+ field: 'zhic',
71
+ width: 200,
72
+ title: '最后登录时间',
73
+ sort: true
74
+ },
75
+ {
76
+ field: 'sex',
77
+ width: 100,
78
+ title: '学院渗透率'
79
+ },
80
+ {
81
+ field: 'birthday',
82
+ width: 100,
83
+ title: '学生',
84
+ },
85
+ {
86
+ field: 'qi',
87
+ width: 100,
88
+ title: '课堂',
89
+ },
90
+ {
91
+ field: 'qi1',
92
+ width: 100,
93
+ title: '测评',
94
+ },
95
+ ]
96
+ ],
97
+ data: [{
98
+ "id": "样子龙",
99
+ "username": "157---784",
100
+ "zhi": "897@qq.com",
101
+ "tai": "湖南大学",
102
+ "zhic": "2021-07-27 10:50",
103
+ "sex": "12",
104
+ "birthday": "100",
105
+ "qi": "100",
106
+ "qi1": "20000",
107
+ }],
108
+ //
109
+ //
110
+ // page: true,
111
+ skin: 'line'
112
+ });
113
+
114
+
115
+ //监听搜索
116
+ // form.on('submit(create_business)', function (data) {
117
+ // if (add_department.getValue() == "") {
118
+ // return layer.alert("请选择单位部门")
119
+ // }
120
+ // request.authPost("missions/businesses", {
121
+ // department_id: add_department.getValue(),
122
+ // name: data.field.name
123
+ // }, function (res) {
124
+ // if (res.success == false) {
125
+ // layer.alert(res.msg)
126
+ // } else {
127
+ // layer.close(parent.index);
128
+ // parent.layer.close(parent.layer.getFrameIndex(window.name))
129
+ // parent.table.reload('businesses_table')
130
+ // }
131
+ // })
132
+ //
133
+ //
134
+ // return false;
135
+ // });
136
+
137
+ });
138
+ </script>
@@ -0,0 +1,107 @@
1
+
2
+ <script type="text/html" id="class_name">
3
+ <a href="<%= base_url %>/classrooms/{{d.id}}" class="layui-table-link" target="_blank">{{ d.name }}</a>
4
+ </script>
5
+
6
+ <table class="layui-hide" id="class_T" lay-filter="classFilter"></table>
7
+ <script>
8
+ layui.use(['form', 'table'], function () {
9
+ var $ = layui.jquery,
10
+ form = layui.form;
11
+
12
+ table.render({
13
+ elem: '#class_T',
14
+ url: '/missions/teachers/course_list?user_id=' + parent.user_id,
15
+ defaultToolbar: [],
16
+ cols: [
17
+ [
18
+ {
19
+ field: 'id',
20
+ width: 80,
21
+ title:'序号',type: 'numbers',
22
+ },
23
+ {
24
+ field: 'name',
25
+ width: 150,
26
+ title: '课堂名称',
27
+ templet: "#class_name"
28
+
29
+ },
30
+ {
31
+ field: 'teachers',
32
+ width: 80,
33
+ title: '老师',
34
+ },
35
+ {
36
+ field: 'students',
37
+ width: 80,
38
+ title: '学生'
39
+ },
40
+ {
41
+ field: 'informs',
42
+ width: 80,
43
+ title: '公告',
44
+ },
45
+ {
46
+ field: 'attachments',
47
+ width: 80,
48
+ title: '资源',
49
+ },
50
+ {
51
+ field: 'videos',
52
+ width: 80,
53
+ title: '视频',
54
+ },
55
+ {
56
+ field: 'practice',
57
+ width: 100,
58
+ title: '实训作业',
59
+ },
60
+ {
61
+ field: 'normal',
62
+ width: 100,
63
+ title: '普通作业',
64
+ },
65
+ {
66
+ field: 'group',
67
+ width: 100,
68
+ title: '分组作业',
69
+ },
70
+ {
71
+ field: 'exercises_count',
72
+ width: 80,
73
+ title: '试卷',
74
+ },
75
+ {
76
+ field: 'student_works_count',
77
+ width: 80,
78
+ title: '作品数',
79
+ },
80
+ {
81
+ field: 'evaluate_count',
82
+ width: 100,
83
+ title: '评测次数',
84
+ },
85
+ {
86
+ field: 'is_public',
87
+ width: 80,
88
+ title: '私有',
89
+ },
90
+ {
91
+ field: 'status',
92
+ width: 100,
93
+ title: '状态',
94
+ },
95
+ {
96
+ field: 'created_at',
97
+ width: 190,
98
+ title: '创建时间',
99
+ sort: true,
100
+ fixed: 'right'
101
+ }
102
+ ]
103
+ ],
104
+ page: true
105
+ });
106
+ });
107
+ </script>