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.
- checksums.yaml +4 -4
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
- data/app/controllers/educode_sales/idea_recycles_controller.rb +100 -0
- data/app/controllers/educode_sales/ideas_controller.rb +130 -0
- data/app/controllers/educode_sales/logs_controller.rb +21 -0
- data/app/controllers/educode_sales/teacher_follows_controller.rb +82 -2
- data/app/controllers/educode_sales/teachers_controller.rb +18 -3
- data/app/models/educode_sales/common.rb +2 -0
- data/app/models/educode_sales/idea.rb +87 -0
- data/app/models/educode_sales/idea_history.rb +8 -0
- data/app/views/educode_sales/idea_recycles/activities.json.jbuilder +9 -0
- data/app/views/educode_sales/idea_recycles/add_courses.html.erb +133 -0
- data/app/views/educode_sales/idea_recycles/add_event.html.erb +49 -0
- data/app/views/educode_sales/idea_recycles/add_keys.html.erb +334 -0
- data/app/views/educode_sales/idea_recycles/course_list.json.jbuilder +23 -0
- data/app/views/educode_sales/idea_recycles/course_subject.json.jbuilder +10 -0
- data/app/views/educode_sales/idea_recycles/daily_paper.html.erb +68 -0
- data/app/views/educode_sales/idea_recycles/detail.html.erb +144 -0
- data/app/views/educode_sales/idea_recycles/edit.html.erb +193 -0
- data/app/views/educode_sales/idea_recycles/edit_follow_record.html.erb +87 -0
- data/app/views/educode_sales/idea_recycles/history.html.erb +41 -0
- data/app/views/educode_sales/idea_recycles/import.html.erb +41 -0
- data/app/views/educode_sales/idea_recycles/index.html.erb +321 -0
- data/app/views/educode_sales/idea_recycles/index.json.jbuilder +16 -0
- data/app/views/educode_sales/idea_recycles/new.html.erb +204 -0
- data/app/views/educode_sales/idea_recycles/new_follow_record.html.erb +93 -0
- data/app/views/educode_sales/idea_recycles/search_new.html.erb +138 -0
- data/app/views/educode_sales/idea_recycles/show_class.html.erb +107 -0
- data/app/views/educode_sales/idea_recycles/show_follow.html.erb +504 -0
- data/app/views/educode_sales/idea_recycles/show_follow.json.jbuilder +23 -0
- data/app/views/educode_sales/idea_recycles/show_follow_record.html.erb +36 -0
- data/app/views/educode_sales/idea_recycles/unfinish_plans.json.jbuilder +14 -0
- data/app/views/educode_sales/ideas/activities.json.jbuilder +9 -0
- data/app/views/educode_sales/ideas/add_courses.html.erb +133 -0
- data/app/views/educode_sales/ideas/add_event.html.erb +49 -0
- data/app/views/educode_sales/ideas/add_keys.html.erb +334 -0
- data/app/views/educode_sales/ideas/course_list.json.jbuilder +23 -0
- data/app/views/educode_sales/ideas/course_subject.json.jbuilder +10 -0
- data/app/views/educode_sales/ideas/daily_paper.html.erb +68 -0
- data/app/views/educode_sales/ideas/detail.html.erb +144 -0
- data/app/views/educode_sales/ideas/edit.html.erb +182 -0
- data/app/views/educode_sales/ideas/edit_follow_record.html.erb +87 -0
- data/app/views/educode_sales/ideas/history.html.erb +41 -0
- data/app/views/educode_sales/ideas/import.html.erb +41 -0
- data/app/views/educode_sales/ideas/index.html.erb +335 -0
- data/app/views/educode_sales/ideas/index.json.jbuilder +16 -0
- data/app/views/educode_sales/ideas/new.html.erb +182 -0
- data/app/views/educode_sales/ideas/new_follow_record.html.erb +93 -0
- data/app/views/educode_sales/ideas/search_new.html.erb +138 -0
- data/app/views/educode_sales/ideas/show_class.html.erb +107 -0
- data/app/views/educode_sales/ideas/show_follow.html.erb +504 -0
- data/app/views/educode_sales/ideas/show_follow.json.jbuilder +23 -0
- data/app/views/educode_sales/ideas/show_follow_record.html.erb +36 -0
- data/app/views/educode_sales/ideas/unfinish_plans.json.jbuilder +14 -0
- data/app/views/educode_sales/logs/index.html.erb +48 -0
- data/app/views/educode_sales/logs/index.json.jbuilder +16 -0
- data/app/views/educode_sales/staffs/edit.html.erb +0 -1
- data/app/views/educode_sales/teacher_follows/index.json.jbuilder +20 -0
- data/app/views/educode_sales/teachers/_follows.html.erb +256 -0
- data/app/views/educode_sales/teachers/_index.html.erb +677 -0
- data/app/views/educode_sales/teachers/daily_paper.html.erb +22 -22
- data/app/views/educode_sales/teachers/index.html.erb +11 -651
- data/app/views/educode_sales/teachers/index.json.jbuilder +10 -0
- data/app/views/educode_sales/teachers/new.html.erb +9 -3
- data/app/views/educode_sales/teachers/new_follow_record.html.erb +6 -0
- data/app/views/layouts/educode_sales/application.html.erb +36 -7
- data/config/routes.rb +19 -0
- data/db/migrate/20230227061043_create_educode_sales_ideas.rb +28 -0
- data/db/migrate/20230227070206_change_to_educode_sales_ideas.rb +5 -0
- data/db/migrate/20230227125936_add_follow_at_to_teachers.rb +6 -0
- data/db/migrate/20230228063555_create_educode_sales_idea_histories.rb +10 -0
- data/db/migrate/20230302074324_change_manager_for_ideas.rb +6 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +66 -6
@@ -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,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>
|
@@ -0,0 +1,144 @@
|
|
1
|
+
<div style=" text-align:left; margin-left: 100px;margin-top: 20px">
|
2
|
+
<div class="layui-btn-group">
|
3
|
+
<button type="button" class="layui-btn" onclick="pre_follow()">历史记录</button>
|
4
|
+
</div>
|
5
|
+
</div>
|
6
|
+
<% EducodeSales::Idea.where(school_id: @idea.school_id).order("id = #{@idea.id} DESC").each do |idea| %>
|
7
|
+
<div class="layui-form form-value" style="padding: 18px">
|
8
|
+
<div class="layui-form-item" style="padding: 25px">
|
9
|
+
<div class="layui-inline">
|
10
|
+
<label class="layui-form-label" style="width: 100px"></label>
|
11
|
+
<div class="layui-inline">
|
12
|
+
<h1> <%= idea.id == @idea.id ? "方案信息" : "历史合作" %></h1>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
<br>
|
16
|
+
<div class="layui-inline">
|
17
|
+
<label class="layui-form-label" style="width: 100px">学校/单位:</label>
|
18
|
+
<div class="layui-input-inline">
|
19
|
+
<%= idea.school&.name %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<div class="layui-inline">
|
23
|
+
<label class="layui-form-label" style="width: 100px">院系/部门:</label>
|
24
|
+
<div class="layui-input-inline">
|
25
|
+
<%= idea.department&.name %>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="layui-inline">
|
29
|
+
<label class="layui-form-label" style="width: 100px">学校负责人:</label>
|
30
|
+
<div class="layui-input-inline">
|
31
|
+
<%= idea.manager_name %>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
<br>
|
35
|
+
<div class="layui-inline">
|
36
|
+
<label class="layui-form-label" style="width: 100px">负责人电话:</label>
|
37
|
+
<div class="layui-input-inline">
|
38
|
+
<%= idea.manager_phone %>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
<div class="layui-inline">
|
42
|
+
<label class="layui-form-label" style="width: 100px">项目名称:</label>
|
43
|
+
<div class="layui-input-inline">
|
44
|
+
<%= idea.name %>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
<div class="layui-inline">
|
48
|
+
<label class="layui-form-label" style="width: 100px">指派人:</label>
|
49
|
+
<div class="layui-input-inline">
|
50
|
+
<%= idea.staff&.user&.real_name %>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
<br>
|
54
|
+
<div class="layui-inline">
|
55
|
+
<label class="layui-form-label" style="width: 100px">优先级:</label>
|
56
|
+
<div class="layui-input-inline">
|
57
|
+
<%= idea.level %>
|
58
|
+
</div>
|
59
|
+
</div>
|
60
|
+
<div class="layui-inline">
|
61
|
+
<label class="layui-form-label" style="width: 100px">状态:</label>
|
62
|
+
<div class="layui-input-inline">
|
63
|
+
<%= idea.status %>
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
<div class="layui-inline">
|
67
|
+
<label class="layui-form-label" style="width: 100px">类型:</label>
|
68
|
+
<div class="layui-input-inline">
|
69
|
+
<%= idea.types %>
|
70
|
+
</div>
|
71
|
+
</div>
|
72
|
+
<br>
|
73
|
+
<div class="layui-inline">
|
74
|
+
<label class="layui-form-label" style="width: 100px">部署模式:</label>
|
75
|
+
<div class="layui-input-inline">
|
76
|
+
<%= idea.model %>
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
<div class="layui-inline">
|
80
|
+
<label class="layui-form-label" style="width: 100px">硬件规模(万):</label>
|
81
|
+
<div class="layui-input-inline">
|
82
|
+
<%= idea.hardware.to_f.round(2) %>
|
83
|
+
</div>
|
84
|
+
</div>
|
85
|
+
<div class="layui-inline">
|
86
|
+
<label class="layui-form-label" style="width: 100px">项目预算(万):</label>
|
87
|
+
<div class="layui-input-inline">
|
88
|
+
<%= idea.money.to_f.round(2) %>
|
89
|
+
</div>
|
90
|
+
</div>
|
91
|
+
<br>
|
92
|
+
<div class="layui-inline">
|
93
|
+
<label class="layui-form-label" style="width: 100px">项目规模(人):</label>
|
94
|
+
<div class="layui-input-inline">
|
95
|
+
<%= idea.project.to_i %>
|
96
|
+
</div>
|
97
|
+
</div>
|
98
|
+
<div class="layui-inline">
|
99
|
+
<label class="layui-form-label" style="width: 100px">截止时间:</label>
|
100
|
+
<div class="layui-input-inline">
|
101
|
+
<%= idea.end_time.to_s %>
|
102
|
+
</div>
|
103
|
+
</div>
|
104
|
+
<br>
|
105
|
+
<div class="layui-inline">
|
106
|
+
<label class="layui-form-label" style="width: 100px">反馈情况:</label>
|
107
|
+
<div class="layui-input-inline" style="width: 1000px">
|
108
|
+
<%= idea.content.to_s %>
|
109
|
+
</div>
|
110
|
+
</div>
|
111
|
+
</div>
|
112
|
+
</div>
|
113
|
+
<hr>
|
114
|
+
<hr>
|
115
|
+
<% end %>
|
116
|
+
|
117
|
+
<script type="text/javascript" charset="utf-8">
|
118
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
119
|
+
var $ = layui.jquery,
|
120
|
+
form = layui.form,
|
121
|
+
table = layui.table,
|
122
|
+
request = layui.request,
|
123
|
+
miniPage = layui.miniPage;
|
124
|
+
|
125
|
+
});
|
126
|
+
|
127
|
+
function pre_follow() {
|
128
|
+
var content = miniPage.getHrefContent('/missions/idea_recycles/history?id=' + <%=@idea.id %>);
|
129
|
+
var openWH = miniPage.getOpenWidthHeight();
|
130
|
+
history_index = layer.open({
|
131
|
+
title: '历史记录',
|
132
|
+
type: 1,
|
133
|
+
shade: 0.2,
|
134
|
+
maxmin: true,
|
135
|
+
shadeClose: true,
|
136
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
137
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
138
|
+
content: content
|
139
|
+
});
|
140
|
+
$(window).on("resize", function () {
|
141
|
+
layer.full(index);
|
142
|
+
});
|
143
|
+
}
|
144
|
+
</script>
|