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,335 @@
1
+ <div style="margin: 10px 10px 10px 10px">
2
+ <form class="layui-form layui-form-pane" lay-filter="search_ideas">
3
+ <div class="layui-form-item">
4
+ <div class="layui-inline ">
5
+ <label class="layui-form-label">创建时间</label>
6
+ <div class="layui-input-inline">
7
+ <input type="text" class="layui-input" id="created_at" name="created_at" placeholder=" - " autocomplete="off">
8
+ </div>
9
+ </div>
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label">发布人</label>
12
+ <div class="layui-input-inline">
13
+ <%= select_tag "creator_id", options_for_select(@creator_arr, ""), { include_blank: true } %>
14
+ </div>
15
+ </div>
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label">指派人</label>
18
+ <div class="layui-input-inline">
19
+ <%= select_tag "staff_id", options_for_select(@staff_arr, ""), { include_blank: true } %>
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 "status", options_for_select(EducodeSales::Idea.statuses.keys, ""), { include_blank: true } %>
26
+ </div>
27
+ </div>
28
+ <div class="layui-inline">
29
+ <label class="layui-form-label">类型</label>
30
+ <div class="layui-input-inline">
31
+ <%= select_tag "types", options_for_select(EducodeSales::Idea.types.keys, ""), { include_blank: true } %>
32
+ </div>
33
+ </div>
34
+ <div class="layui-inline">
35
+ <label class="layui-form-label">部署模式</label>
36
+ <div class="layui-input-inline">
37
+ <%= select_tag "model", options_for_select(EducodeSales::Idea.models.keys, ""), { include_blank: true } %>
38
+ </div>
39
+ </div>
40
+ <div class="layui-inline">
41
+ <label class="layui-form-label">历史合作</label>
42
+ <div class="layui-input-inline">
43
+ <%= select_tag "history_type", options_for_select([["无", 0], ["有", 1]], ""), { include_blank: true } %>
44
+ </div>
45
+ </div>
46
+ <div class="layui-inline">
47
+ <label class="layui-form-label">优先级</label>
48
+ <div class="layui-input-inline">
49
+ <%= select_tag "level", options_for_select(EducodeSales::Idea.levels.keys, ""), { include_blank: true } %>
50
+ </div>
51
+ </div>
52
+ <div class="layui-inline">
53
+ <label class="layui-form-label">项目名称</label>
54
+ <div class="layui-input-inline">
55
+ <input type="text" class="layui-input" id="name" name="name" placeholder=" - " autocomplete="off">
56
+ </div>
57
+ </div>
58
+ <div class="layui-inline">
59
+ <label class="layui-form-label">学校/单位</label>
60
+ <div class="layui-input-inline">
61
+ <input type="text" class="layui-input" id="school" name="school" placeholder=" - " autocomplete="off">
62
+ </div>
63
+ </div>
64
+
65
+ <div class="layui-inline">
66
+ <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
67
+ </button>
68
+ <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_ideas">搜 索
69
+ </button>
70
+ </div>
71
+ </div>
72
+ </form>
73
+ </div>
74
+
75
+ <script type="text/html" id="toolbarDemo">
76
+ <div class="layui-btn-container">
77
+ <span class="table-label">方案管理</span>
78
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add">新增项目方案</button>
79
+ </div>
80
+ </script>
81
+ <div class="">
82
+ <table class="layui-hide" id="ideas_table" style="min-height: 300px;" lay-filter="ideas_table"></table>
83
+ </div>
84
+ <script type="text/html" id="currentTableBar">
85
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edita" lay-event="add_event">详情</a>
86
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="idea_edit">编辑</a>
87
+ <a class="layui-btn layui-btn-danger layui-btn-xs data-count-edit" lay-event="idea_recycle">删除</a>
88
+ </script>
89
+ <script>
90
+ layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate'], function () {
91
+ var $ = layui.jquery,
92
+ form = layui.form,
93
+ request = layui.request,
94
+ dropdown = layui.dropdown,
95
+ miniPage = layui.miniPage,
96
+ laydate = layui.laydate;
97
+
98
+ var laydate = layui.laydate;
99
+
100
+ laydate.render({
101
+ elem: '#created_at',
102
+ range: true
103
+ });
104
+
105
+ table = layui.table;
106
+ table.render({
107
+ elem: '#ideas_table',
108
+ url: '/missions/ideas',
109
+ where: {q: form.val('search_form')},
110
+ toolbar: '#toolbarDemo',
111
+ totalRow: true,
112
+ defaultToolbar: ['filter'],
113
+ cols: [
114
+ [
115
+ {
116
+ field: 'school',
117
+ width: 160,
118
+ title: '学校/单位名称'
119
+ },
120
+ {
121
+ field: 'name',
122
+ width: 160,
123
+ title: '项目名称'
124
+ },
125
+ {
126
+ field: 'level',
127
+ width: 100,
128
+ title: '优先级'
129
+ },
130
+ {
131
+ field: 'staff',
132
+ title: '指派人',
133
+ width: 100
134
+ },
135
+ {
136
+ field: 'status',
137
+ width: 100,
138
+ title: '状态'
139
+ },
140
+ {
141
+ field: 'types',
142
+ width: 100,
143
+ title: '类型',
144
+ },
145
+ {
146
+ field: 'model',
147
+ width: 100,
148
+ title: '部署模式',
149
+ },
150
+ {
151
+ field: 'hardware',
152
+ width: 100,
153
+ title: '硬件规模(万)'
154
+ },
155
+ {
156
+ field: 'project',
157
+ width: 100,
158
+ title: '项目规模(人)'
159
+ },
160
+ {
161
+ field: 'money',
162
+ width: 100,
163
+ title: '项目预算(万)'
164
+ },
165
+ {
166
+ field: 'creator',
167
+ width: 100,
168
+ title: '发布人'
169
+ },
170
+ {
171
+ field: 'end_time',
172
+ width: 200,
173
+ title: '截止时间'
174
+ },
175
+ {
176
+ field: 'history_type',
177
+ width: 150,
178
+ title: '历史合作'
179
+ },
180
+ {
181
+ field: 'content',
182
+ width: 200,
183
+ title: '反馈情况'
184
+ },
185
+ {
186
+ title: '操作',
187
+ minWidth: 170,
188
+ toolbar: '#currentTableBar',
189
+ align: "center",
190
+ fixed: 'right'
191
+ }
192
+ ]
193
+ ],
194
+ limit: 20,
195
+ limits: [10, 15, 20, 30, 40, 50, 60, 70, 80, 90],
196
+ page: true,
197
+ done: function (res) {
198
+ }
199
+ });
200
+
201
+ function deleteBusiness(id, name) {
202
+ layer.confirm('确定删除' + name, function (index) {
203
+ request.delete('missions/ideas/' + id, {}, function (res) {
204
+ layer.close(index);
205
+ table.reload("ideas_table")
206
+ })
207
+ });
208
+ }
209
+
210
+ var sort = {}, search = {};
211
+ table.on('sort(ideas_table)', function (obj) {
212
+ sort.field = obj.field;
213
+ sort.order = obj.type;
214
+ table.reload('ideas_table', {
215
+ initSort: obj,
216
+ where: {
217
+ sort: sort,
218
+ q: search
219
+ }
220
+ });
221
+ })
222
+
223
+ // 监听搜索操作
224
+ form.on('submit(search_ideas)', function (data) {
225
+ search = data.field
226
+ table.reload('ideas_table', {
227
+ page: {
228
+ curr: 1
229
+ },
230
+ where: {q: search, sort: sort}
231
+ }, 'data');
232
+ return false;
233
+ });
234
+
235
+ form.on('submit(reset_business_search)', function (data) {
236
+ var field = data.field;
237
+ form.val('search_ideas', {
238
+ created_at: "",
239
+ creator_id: "",
240
+ staff_id: "",
241
+ name: "",
242
+ school: "",
243
+ status: "",
244
+ model: "",
245
+ types: "",
246
+ level: "",
247
+ history_type: ""
248
+ })
249
+ return false;
250
+ });
251
+ // form.on('submit(show_hide)', function (data) {
252
+ // $(".show_item").toggle()
253
+ // return false;
254
+ // });
255
+ /**
256
+ * toolbar事件监听
257
+ */
258
+ table.on('toolbar(ideas_table)', function (obj) {
259
+ if (obj.event === 'add') { // 手动添加
260
+ var content = miniPage.getHrefContent('/missions/ideas/new');
261
+ var openWH = miniPage.getOpenWidthHeight();
262
+ add_idea_index = layer.open({
263
+ title: '新建',
264
+ type: 1,
265
+ shade: 0.2,
266
+ maxmin: true,
267
+ shadeClose: true,
268
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
269
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
270
+ content: content,
271
+ });
272
+ $(window).on("resize", function () {
273
+ layer.full(index);
274
+ });
275
+ }
276
+ });
277
+
278
+ //监听表格复选框选择
279
+ // table.on('checkbox(ideas_table)', function (obj) {
280
+ // console.log(obj)
281
+ // });
282
+
283
+ table.on('tool(ideas_table)', function (obj) {
284
+ var data = obj.data;
285
+ id = data.id
286
+ if (obj.event === 'add_event') { // 监听添加操作
287
+ var content = miniPage.getHrefContent('/missions/ideas/detail?id=' + data.id);
288
+ var openWH = miniPage.getOpenWidthHeight();
289
+ show_index = layer.open({
290
+ title: '详情',
291
+ type: 1,
292
+ shade: 0.2,
293
+ maxmin: true,
294
+ shadeClose: true,
295
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
296
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
297
+ content: content
298
+ });
299
+ $(window).on("resize", function () {
300
+ layer.full(show_index);
301
+ });
302
+ } else if (obj.event === 'idea_recycle') {
303
+ layer.confirm('确定删除' + data.name, function (index) {
304
+ request.delete('missions/ideas/' + id, {}, function (res) {
305
+ layer.close(index);
306
+ table.reload("ideas_table")
307
+ })
308
+ });
309
+ } else if (obj.event === 'idea_edit') { // 监听添加操作
310
+ var content = miniPage.getHrefContent('/missions/ideas/' + id + '/edit');
311
+ var openWH = miniPage.getOpenWidthHeight();
312
+ edit_index = layer.open({
313
+ title: '编辑',
314
+ type: 1,
315
+ shade: 0.2,
316
+ maxmin: true,
317
+ shadeClose: true,
318
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
319
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
320
+ content: content
321
+ });
322
+ $(window).on("resize", function () {
323
+ layer.full(edit_index);
324
+ });
325
+ }
326
+ });
327
+
328
+ });
329
+ </script>
330
+ <style>
331
+ .layui-table-tool-temp {
332
+ padding-right: 30px;
333
+ !important;
334
+ }
335
+ </style>
@@ -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,182 @@
1
+ <%= Gon::Base.render_data %>
2
+ <div class="layuimini-main" style="height: 100%;">
3
+ <div class="layui-form layuimini-form">
4
+ <div class="layui-form-item" style="padding: 25px">
5
+ <div class="layui-row">
6
+ <h2 style="padding-left: 25px">方案信息</h2>
7
+ </div>
8
+ <div class="layui-row" style="padding-top: 15px">
9
+ <div class="layui-inline">
10
+ <label class="layui-form-label required">单位部门</label>
11
+ <div class="layui-input-block" id="department" style="width: 300px;"></div>
12
+ </div>
13
+ </div>
14
+ <div class="layui-row" style="padding-top: 15px">
15
+ <div class="layui-col-md6">
16
+ <labeL class="layui-form-label">学校负责人:</labeL>
17
+ <div class="layui-input-block">
18
+ <input type="text" name="manager_name" autocomplete="off" placeholder="请输入学校/单位名称" value="<%= @idea&.manager_name %>" class="layui-input">
19
+ </div>
20
+ </div>
21
+ <div class="layui-col-md6">
22
+ <labeL class="layui-form-label">负责人电话:</labeL>
23
+ <div class="layui-input-block">
24
+ <input type="text" name="manager_phone" autocomplete="off" placeholder="请输入院系/部门名称" value="<%= @idea&.manager_phone %>" class="layui-input">
25
+ </div>
26
+ </div>
27
+ </div>
28
+ <div class="layui-row" style="padding-top: 15px">
29
+ <div class="layui-col-md6">
30
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>项目名称:</labeL>
31
+ <div class="layui-input-block">
32
+ <input type="text" name="name" autocomplete="off" lay-verify="required" lay-reqtext="项目名称不能为空" placeholder="请输入项目名称" value="<%= @idea&.name %>" class="layui-input">
33
+ </div>
34
+ </div>
35
+ <div class="layui-col-md6">
36
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>指派人:</labeL>
37
+ <div class="layui-input-block">
38
+ <%= select_tag "staff_id", options_for_select(EducodeSales::Staff.all.map { |d| [d.user&.real_name, d.id] }, @idea&.staff_id), { 'lay-filter': 'staff_id', include_blank: false } %>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <div class="layui-row" style="padding-top: 15px">
43
+ <div class="layui-col-md6">
44
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>优先级:</labeL>
45
+ <div class="layui-input-block">
46
+ <%= select_tag "level", options_for_select(EducodeSales::Idea.levels.keys, @idea&.level), { 'lay-filter': 'level', include_blank: false } %>
47
+ </div>
48
+ </div>
49
+ <div class="layui-col-md6">
50
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>状态:</labeL>
51
+ <div class="layui-input-block">
52
+ <%= select_tag "status", options_for_select(EducodeSales::Idea.statuses.keys, @idea&.status), { 'lay-filter': 'status', include_blank: false } %>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ <div class="layui-row" style="padding-top: 15px">
57
+ <div class="layui-col-md6">
58
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>类型:</labeL>
59
+ <div class="layui-input-block">
60
+ <%= select_tag "types", options_for_select(EducodeSales::Idea.types.keys, @idea&.types), { 'lay-filter': 'types', include_blank: false } %>
61
+ </div>
62
+ </div>
63
+ <div class="layui-col-md6">
64
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>部署模式:</labeL>
65
+ <div class="layui-input-block">
66
+ <%= select_tag "model", options_for_select(EducodeSales::Idea.models.keys, @idea&.model), { 'lay-filter': 'model', include_blank: false } %>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <div class="layui-row" style="padding-top: 15px">
71
+ <div class="layui-col-md6">
72
+ <labeL class="layui-form-label required">硬件规模(万):</labeL>
73
+ <div class="layui-input-block">
74
+ <input type="number" name="hardware" autocomplete="off" lay-verify="required" lay-reqtext="硬件规模不能为空" placeholder="请输入硬件规模" value="<%= @idea&.hardware %>" class="layui-input">
75
+ </div>
76
+ </div>
77
+ <div class="layui-col-md6">
78
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>项目预算(万):</labeL>
79
+ <div class="layui-input-block">
80
+ <input type="number" name="money" autocomplete="off" lay-verify="required" lay-reqtext="项目预算不能为空" placeholder="请输入项目预算" value="<%= @idea&.money %>" class="layui-input">
81
+ </div>
82
+ </div>
83
+ </div>
84
+ <div class="layui-row" style="padding-top: 5px">
85
+ <div class="layui-col-md6">
86
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>项目规模(人):</labeL>
87
+ <div class="layui-input-block">
88
+ <input type="number" name="project" autocomplete="off" lay-verify="required" lay-reqtext="项目规模不能为空" placeholder="请输入项目规模" value="<%= @idea&.project %>" class="layui-input">
89
+ </div>
90
+ </div>
91
+ <div class="layui-col-md6">
92
+ <labeL class="layui-form-label required"><span style="color:red;">*</span>截止时间:</labeL>
93
+ <div class="layui-input-block">
94
+ <input type="text" id="new_time" name="end_time" autocomplete="off" lay-verify="required" lay-reqtext="截止时间不能为空" placeholder="请选择截止时间" value="<%= @idea&.end_time&.to_s(:date) %>" class="layui-input">
95
+ </div>
96
+ </div>
97
+ </div>
98
+ <div class="layui-row" style="padding-top: 15px">
99
+ <labeL class="layui-form-label required">反馈情况:</labeL>
100
+ <div class="layui-input-block">
101
+ <textarea name="content" lay-verify="required" placeholder="反馈情况" class="layui-textarea"><%= @idea&.content.to_s %></textarea>
102
+ </div>
103
+ </div>
104
+ <div class="layui-row" style="padding-top: 30px; float: left">
105
+ <div class="layui-input-block">
106
+ <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ <script>
113
+ layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput', 'xmSelect'], function () {
114
+ var form = layui.form,
115
+ layer = layui.layer,
116
+ request = layui.request,
117
+ laydate = layui.laydate,
118
+ table = layui.table,
119
+ laytpl = layui.laytpl,
120
+ request = layui.request,
121
+ xmSelect = layui.xmSelect,
122
+ $ = layui.$;
123
+ selectInput = layui.selectInput;
124
+
125
+ form.render();
126
+ //时间常规用法
127
+ laydate.render({
128
+ elem: '#new_time'
129
+ });
130
+ form.render();
131
+ var department_id = gon.value;
132
+ var department = selectInput.render({
133
+ elem: '#department',
134
+ name: 'department', // 渲染的input的name值
135
+ layFilter: 'department_filter', //同layui form参数lay-filter
136
+ layVerify: 'required', //同layui form参数lay-verify
137
+ layVerType: 'tips', // 同layui form参数lay-verType
138
+ layReqText: '请填写文本', //同layui form参数lay-ReqText
139
+ initValue: gon.value, // 渲染初始化默认值
140
+ hasSelectIcon: false,
141
+ placeholder: '请输入头歌平台上单位部门', // 渲染的inputplaceholder值
142
+ data: [gon.department],
143
+ remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
144
+ remoteMethod: function (value, cb) { // 远程搜索的回调函数
145
+ if (!value) {
146
+ department_id = "";
147
+ return cb([]);
148
+ }
149
+ request.get('missions/search?type=department&q=' + value, {}, function (res) {
150
+ return cb(res)
151
+ })
152
+ }
153
+ });
154
+
155
+ // 当前弹出层,防止ID被覆盖
156
+ var parentIndex = layer.index;
157
+
158
+ //监听提交
159
+ form.on('submit(saveBtn)', function (data) {
160
+ if (department.getValue() == "" && department_id == "") {
161
+ layer.alert("请选择单位部门")
162
+ return false;
163
+ } else {
164
+ data.field.department_id = department.getValue() || department_id;
165
+ request.authPost("missions/ideas/", data.field, function (res) {
166
+ if (res.success == false) {
167
+ layer.alert(res.msg)
168
+ } else {
169
+ layer.close(parent.add_idea_index);
170
+ parent.layer.close(parent.layer.getFrameIndex(window.name))
171
+ parent.table.reload('ideas_table', {
172
+ done: function () {
173
+ }
174
+ });
175
+ }
176
+ })
177
+ }
178
+ return false;
179
+ });
180
+
181
+ });
182
+ </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>