educode_sales 0.9.47 → 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/businesses/get_export_data.json.jbuilder +18 -13
- data/app/views/educode_sales/businesses/index.json.jbuilder +4 -4
- 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,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>
|
@@ -0,0 +1,193 @@
|
|
1
|
+
<%= Gon::Base.render_data %>
|
2
|
+
<div class="layui-form layuimini-form">
|
3
|
+
<div class="layui-form-item" style="padding: 25px">
|
4
|
+
<div class="layui-inline">
|
5
|
+
<label class="layui-form-label required">姓名</label>
|
6
|
+
<div class="layui-input-block">
|
7
|
+
<input type="text" name="name" autocomplete="off" lay-verify="required"
|
8
|
+
class="layui-input" placeholder="请输入" value="<%= @teacher.name %>">
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
<div class="layui-inline">
|
12
|
+
<label class="layui-form-label ">职称</label>
|
13
|
+
<div class="layui-input-block">
|
14
|
+
<%= select_tag "professional_title", options_for_select(['教授', '研究员', '副教授', '副研究员', '讲师', '助理研究员', '助理教授'], @teacher.professional_title), { include_blank: true } %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<br>
|
18
|
+
<div class="layui-inline">
|
19
|
+
<label class="layui-form-label ">职务</label>
|
20
|
+
<div class="layui-input-block">
|
21
|
+
<input type="text" name="job" autocomplete="off"
|
22
|
+
class="layui-input" placeholder="请输入" value="<%= @teacher.job %>">
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
<div class="layui-inline">
|
26
|
+
<label class="layui-form-label ">来源</label>
|
27
|
+
<div class="layui-input-block">
|
28
|
+
<%= select_tag "source_id", options_for_select(EducodeSales::Common.where(clazz: 'teacher_source').pluck(:name, :id), @teacher.source_id), { include_blank: true } %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
<br>
|
32
|
+
<div class="layui-inline">
|
33
|
+
<label class="layui-form-label ">微信号</label>
|
34
|
+
<div class="layui-input-block">
|
35
|
+
<input type="text" name="wechat" autocomplete="off"
|
36
|
+
class="layui-input" placeholder="请输入" value="<%= @teacher.wechat %>">
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<br>
|
40
|
+
<div class="layui-inline">
|
41
|
+
<label class="layui-form-label required">单位部门</label>
|
42
|
+
<div class="layui-input-block" id="add_department2" style="width: 400px"></div>
|
43
|
+
</div>
|
44
|
+
<br>
|
45
|
+
<div class="layui-form-item">
|
46
|
+
<label class="layui-form-label">教研助理</label>
|
47
|
+
<div class="layui-input-inline">
|
48
|
+
<div id="edit_teacher_assist" style="width: 400px;"></div>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
<div class="layui-inline">
|
52
|
+
<label class="layui-form-label">平台账号</label>
|
53
|
+
<div class="layui-input-block" id="user_search" style="width: 400px;"></div>
|
54
|
+
</div>
|
55
|
+
<div class="layui-form-item m-t-20">
|
56
|
+
<div class="layui-input-block">
|
57
|
+
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="create_teacher_btn">提交</button>
|
58
|
+
</button>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
<script>
|
64
|
+
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput'], function () {
|
65
|
+
var form = layui.form,
|
66
|
+
layer = layui.layer,
|
67
|
+
table = layui.table,
|
68
|
+
laytpl = layui.laytpl,
|
69
|
+
request = layui.request,
|
70
|
+
$ = layui.$;
|
71
|
+
selectInput = layui.selectInput;
|
72
|
+
|
73
|
+
form.render();
|
74
|
+
|
75
|
+
var edit_teacher_assist_list = xmSelect.render({
|
76
|
+
el: '#edit_teacher_assist',
|
77
|
+
remoteSearch: true,
|
78
|
+
clickClose: true,
|
79
|
+
delay: 1000,
|
80
|
+
paging: true,
|
81
|
+
pageRemote: true,
|
82
|
+
filterable: true,
|
83
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
84
|
+
$.ajax( '/missions/sales_staff?teacher_assist=true', {
|
85
|
+
method: 'get',
|
86
|
+
data: {
|
87
|
+
q: val,
|
88
|
+
page: pageIndex
|
89
|
+
},
|
90
|
+
dataType: 'json',
|
91
|
+
success: function (res) {
|
92
|
+
var data = res.data;
|
93
|
+
if (res.code == 0) {
|
94
|
+
cb(res.data, res.count);
|
95
|
+
} else {
|
96
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
97
|
+
}
|
98
|
+
}
|
99
|
+
})
|
100
|
+
}
|
101
|
+
})
|
102
|
+
edit_teacher_assist_list.setValue(gon.teacher_assist)
|
103
|
+
|
104
|
+
var add_department = selectInput.render({
|
105
|
+
elem: '#add_department2',
|
106
|
+
name: 'department', // 渲染的input的name值
|
107
|
+
layFilter: 'test', //同layui form参数lay-filter
|
108
|
+
layVerify: 'required', //同layui form参数lay-verify
|
109
|
+
layVerType: 'tips', // 同layui form参数lay-verType
|
110
|
+
layReqText: '请填写文本', //同layui form参数lay-ReqText
|
111
|
+
initValue: "<%= @teacher.department_id %>", // 渲染初始化默认值
|
112
|
+
hasSelectIcon: false,
|
113
|
+
placeholder: '请输入教师注册头歌平台的手机号或邮箱', // 渲染的inputplaceholder值
|
114
|
+
data: [gon.department],
|
115
|
+
remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
|
116
|
+
remoteMethod: function (value, cb) { // 远程搜索的回调函数
|
117
|
+
if (!value) {
|
118
|
+
return cb([]);
|
119
|
+
}
|
120
|
+
request.get('missions/search?type=department&q=' + value, {}, function (res) {
|
121
|
+
return cb(res)
|
122
|
+
})
|
123
|
+
}
|
124
|
+
});
|
125
|
+
|
126
|
+
var add_teacher = selectInput.render({
|
127
|
+
elem: '#user_search',
|
128
|
+
name: 'user_id', // 渲染的input的name值
|
129
|
+
layFilter: 'user_id', //同layui form参数lay-filter
|
130
|
+
// layVerify: 'required', //同layui form参数lay-verify
|
131
|
+
layVerType: 'tips', // 同layui form参数lay-verType
|
132
|
+
layReqText: '请填写文本', //同layui form参数lay-ReqText
|
133
|
+
initValue: '', // 渲染初始化默认值
|
134
|
+
hasSelectIcon: false,
|
135
|
+
placeholder: '支持姓名/手机号/邮箱搜索', // 渲染的inputplaceholder值
|
136
|
+
data: [],
|
137
|
+
remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
|
138
|
+
remoteMethod: function (value, cb) { // 远程搜索的回调函数
|
139
|
+
if (!value) {
|
140
|
+
return cb([]);
|
141
|
+
}
|
142
|
+
request.get('missions/search_edu_teacher?q=' + value, {}, function (res) {
|
143
|
+
console.log(res);
|
144
|
+
return cb(res)
|
145
|
+
})
|
146
|
+
}
|
147
|
+
});
|
148
|
+
var user_id = "<%= @teacher.user_id || '' %>";
|
149
|
+
|
150
|
+
add_teacher.on('itemSelect(user_search)', function (obj) {
|
151
|
+
user_id = obj.data;
|
152
|
+
})
|
153
|
+
|
154
|
+
// 当前弹出层,防止ID被覆盖
|
155
|
+
var parentIndex = layer.index;
|
156
|
+
var department_id = "<%= @teacher.department_id %>";
|
157
|
+
add_department.on('itemInput(add_department2)', function (obj) {
|
158
|
+
department_id = '';
|
159
|
+
});
|
160
|
+
add_department.on('itemSelect(add_department2)', function (obj) {
|
161
|
+
department_id = obj.data;
|
162
|
+
})
|
163
|
+
|
164
|
+
//监听提交
|
165
|
+
form.on('submit(create_teacher_btn)', function (data) {
|
166
|
+
if (department_id == '') {
|
167
|
+
return layer.alert("请选择单位部门")
|
168
|
+
}
|
169
|
+
var assign_follow = [];
|
170
|
+
edit_teacher_assist_list.getValue().forEach(function(d) {
|
171
|
+
assign_follow.push(d.value);
|
172
|
+
})
|
173
|
+
data.field.teacher_assist = assign_follow;
|
174
|
+
data.field.department_id = department_id;
|
175
|
+
data.field.user_id = user_id;
|
176
|
+
request.authPut("missions/teachers/"+ parent.id, data.field, function (res) {
|
177
|
+
if (res.success == false) {
|
178
|
+
layer.alert(res.msg)
|
179
|
+
} else {
|
180
|
+
layer.close(parent.sindex);
|
181
|
+
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
182
|
+
parent.table.reload('teachers_table', {done: function() {
|
183
|
+
parent.drowpdwonRender()
|
184
|
+
}});
|
185
|
+
}
|
186
|
+
})
|
187
|
+
|
188
|
+
|
189
|
+
return false;
|
190
|
+
});
|
191
|
+
|
192
|
+
});
|
193
|
+
</script>
|
@@ -0,0 +1,87 @@
|
|
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), @follow_up.attitude_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), @follow_up.course_plan_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), @follow_up.course_build_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), @follow_up.follow_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"><%= @follow_up.description %></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="edit_follow_up">提交
|
42
|
+
</button>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
</form>
|
46
|
+
|
47
|
+
<script>
|
48
|
+
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'laydate'], function () {
|
49
|
+
var form = layui.form,
|
50
|
+
layer = layui.layer,
|
51
|
+
table = layui.table,
|
52
|
+
laytpl = layui.laytpl,
|
53
|
+
request = layui.request,
|
54
|
+
laydate = layui.laydate,
|
55
|
+
$ = layui.$;
|
56
|
+
|
57
|
+
// laydate.render({
|
58
|
+
// elem: '#invitation_at_add'
|
59
|
+
// })
|
60
|
+
//
|
61
|
+
// laydate.render({
|
62
|
+
// elem: '#reception_at_add'
|
63
|
+
// });
|
64
|
+
|
65
|
+
form.render();
|
66
|
+
|
67
|
+
form.on('submit(edit_follow_up)', function (data) {
|
68
|
+
request.authPut("missions/teacher_follows/<%= @follow_up.id%>", data.field, function (res) {
|
69
|
+
if (res.success == false) {
|
70
|
+
layer.alert(res.msg)
|
71
|
+
} else {
|
72
|
+
layer.close(parent.edit_index1);
|
73
|
+
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
74
|
+
parent.table.reload('followTable')
|
75
|
+
parent.table.reload('teachers_table')
|
76
|
+
parent.table.reload('weekPlanTable1')
|
77
|
+
parent.table.reload('monthPlanTable')
|
78
|
+
parent.table.reload('sale_plan_follow_table')
|
79
|
+
}
|
80
|
+
})
|
81
|
+
|
82
|
+
|
83
|
+
return false;
|
84
|
+
});
|
85
|
+
|
86
|
+
});
|
87
|
+
</script>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<div class="layui-btn-container" style="padding-right: 200px;padding-top: 10px">
|
2
|
+
</div>
|
3
|
+
<div style="padding: 50px">
|
4
|
+
<ul class="layui-timeline">
|
5
|
+
<% @idea.idea_histories.order(id: :desc).each do |f| %>
|
6
|
+
<li class="layui-timeline-item">
|
7
|
+
<i class="layui-icon layui-timeline-axis"></i>
|
8
|
+
<div class="layui-timeline-content layui-text">
|
9
|
+
<h3 class="layui-timeline-title"><%= f.created_at.to_s %>---<%= f.staff.user.real_name %></h3>
|
10
|
+
<p>
|
11
|
+
<% Array(f.content).each do |d| %>
|
12
|
+
<%= d %>
|
13
|
+
<br>
|
14
|
+
<% end %>
|
15
|
+
</p>
|
16
|
+
</div>
|
17
|
+
</li>
|
18
|
+
<% end %>
|
19
|
+
<li class="layui-timeline-item">
|
20
|
+
<i class="layui-icon layui-timeline-axis"></i>
|
21
|
+
<div class="layui-timeline-content layui-text">
|
22
|
+
<h3 class="layui-timeline-title"><%= @idea.created_at.to_s %>---<%= @idea.creator&.user&.real_name %></h3>
|
23
|
+
<p>
|
24
|
+
创建该方案
|
25
|
+
</p>
|
26
|
+
</div>
|
27
|
+
</li>
|
28
|
+
</ul>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<script type="text/javascript" charset="utf-8">
|
32
|
+
|
33
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
34
|
+
var $ = layui.jquery,
|
35
|
+
form = layui.form,
|
36
|
+
table = layui.table,
|
37
|
+
request = layui.request,
|
38
|
+
miniPage = layui.miniPage;
|
39
|
+
|
40
|
+
});
|
41
|
+
</script>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<div style="padding-left: 50px">
|
2
|
+
<button type="button" class="layui-btn" id="test3"><i class="layui-icon"></i>选择文件</button>
|
3
|
+
</div>
|
4
|
+
<script>
|
5
|
+
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput'], function () {
|
6
|
+
var form = layui.form,
|
7
|
+
layer = layui.layer,
|
8
|
+
table = layui.table,
|
9
|
+
laytpl = layui.laytpl,
|
10
|
+
upload = layui.upload,
|
11
|
+
request = layui.request,
|
12
|
+
$ = layui.$;
|
13
|
+
selectInput = layui.selectInput;
|
14
|
+
|
15
|
+
form.render();
|
16
|
+
|
17
|
+
//指定允许上传的文件类型
|
18
|
+
upload.render({
|
19
|
+
elem: '#test3'
|
20
|
+
,url: '/missions/import_teachers' //此处配置你自己的上传接口即可
|
21
|
+
,accept: 'file', //普通文件
|
22
|
+
headers: {
|
23
|
+
'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
|
24
|
+
}
|
25
|
+
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
|
26
|
+
layer.load(); //上传loading
|
27
|
+
}
|
28
|
+
,done: function(res){
|
29
|
+
layer.msg('导入成功');
|
30
|
+
table.reload('teachers_table');
|
31
|
+
table.reload('activities_table');
|
32
|
+
layer.close(parent.import_index)
|
33
|
+
layer.closeAll('loading'); //关闭loading
|
34
|
+
}
|
35
|
+
,error: function(index, upload){
|
36
|
+
layer.closeAll('loading'); //关闭loading
|
37
|
+
layer.alert('导入失败,请检查文件格式')
|
38
|
+
}
|
39
|
+
});
|
40
|
+
});
|
41
|
+
</script>
|