educode_sales 0.9.65 → 0.9.67
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/controllers/educode_sales/activities_controller.rb +72 -4
- data/app/controllers/educode_sales/businesses_controller.rb +82 -1
- data/app/models/educode_sales/activity.rb +17 -4
- data/app/models/educode_sales/activity_follow_up.rb +13 -0
- data/app/models/educode_sales/activity_staff.rb +1 -1
- data/app/models/educode_sales/business.rb +3 -0
- data/app/models/educode_sales/business_level.rb +11 -0
- data/app/models/educode_sales/business_watch.rb +6 -0
- data/app/views/educode_sales/activities/_follows.html.erb +208 -0
- data/app/views/educode_sales/activities/_index.html.erb +418 -0
- data/app/views/educode_sales/activities/edit.html.erb +99 -0
- data/app/views/educode_sales/activities/follow_ups.json.jbuilder +19 -0
- data/app/views/educode_sales/activities/index.html.erb +13 -349
- data/app/views/educode_sales/activities/index.json.jbuilder +9 -1
- data/app/views/educode_sales/activities/new.html.erb +80 -0
- data/app/views/educode_sales/activities/new_follow_up.html.erb +56 -0
- data/app/views/educode_sales/businesses/edit.html.erb +48 -6
- data/app/views/educode_sales/businesses/index.html.erb +10 -0
- data/app/views/educode_sales/businesses/no_permission.html.erb +2 -0
- data/app/views/educode_sales/idea_recycles/index.html.erb +9 -1
- data/app/views/educode_sales/ideas/edit.html.erb +22 -22
- data/app/views/educode_sales/ideas/index.html.erb +10 -1
- data/app/views/educode_sales/ideas/new.html.erb +12 -12
- data/config/routes.rb +3 -0
- data/db/migrate/20230329135141_create_educode_sales_business_watches.rb +17 -0
- data/db/migrate/20230330141213_create_educode_sales_activity_follow_ups.rb +25 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +15 -6
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
@@ -0,0 +1,418 @@
|
|
1
|
+
<script type="text/html" id="activity_toolbar">
|
2
|
+
<div class="layui-btn-container">
|
3
|
+
<span class="table-label">活动列表</span>
|
4
|
+
<% if can? :create, EducodeSales::Activity %>
|
5
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="import">导入数据</button>
|
6
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加活动</button>
|
7
|
+
<% end %>
|
8
|
+
</div>
|
9
|
+
</script>
|
10
|
+
<div style="margin: 10px 10px 10px 10px">
|
11
|
+
<form class="layui-form layui-form-pane" lay-filter="search_ideas">
|
12
|
+
<div class="layui-form-item">
|
13
|
+
<div class="layui-inline ">
|
14
|
+
<label class="layui-form-label">活动名称</label>
|
15
|
+
<div class="layui-input-inline">
|
16
|
+
<input type="text" class="layui-input" name="name" autocomplete="off">
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<div class="layui-inline">
|
20
|
+
<label class="layui-form-label">会议类型</label>
|
21
|
+
<div class="layui-input-inline">
|
22
|
+
<%= select_tag "clazz_id", options_for_select(['全国会议', '区域会议', '单校会议', '国赛', '省赛', '夏令营'], ""), { include_blank: true } %>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
<div class="layui-inline">
|
26
|
+
<label class="layui-form-label">活动类型</label>
|
27
|
+
<div class="layui-input-inline">
|
28
|
+
<%= select_tag "state_id", options_for_select(EducodeSales::Activity.state_ids.keys, ""), { include_blank: true } %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
<div class="layui-inline">
|
32
|
+
<label class="layui-form-label">销售经理</label>
|
33
|
+
<div class="layui-input-inline">
|
34
|
+
<%= select_tag "staff_id", options_for_select(@staffs, ""), { include_blank: true } %>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
<div class="layui-inline">
|
38
|
+
<label class="layui-form-label">生态经理</label>
|
39
|
+
<div class="layui-input-inline">
|
40
|
+
<%= select_tag "manage", options_for_select(@staffs, ""), { include_blank: true } %>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
<div class="layui-inline">
|
44
|
+
<label class="layui-form-label">协助人员</label>
|
45
|
+
<div class="layui-input-inline">
|
46
|
+
<%= select_tag "assists", options_for_select(@staffs, ""), { include_blank: true } %>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
<div class="layui-inline">
|
50
|
+
<label class="layui-form-label">报告专家</label>
|
51
|
+
<div class="layui-input-inline">
|
52
|
+
<input type="text" class="layui-input" name="expert" autocomplete="off">
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
<div class="layui-inline">
|
56
|
+
<button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_activity_search">重置
|
57
|
+
</button>
|
58
|
+
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_activity">搜 索
|
59
|
+
</button>
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
</form>
|
63
|
+
</div>
|
64
|
+
<div class="min-height-table">
|
65
|
+
<table class="layui-hide" id="activities_table" lay-filter="activities_table"></table>
|
66
|
+
</div>
|
67
|
+
|
68
|
+
<script type="text/html" id="currentTableBar">
|
69
|
+
<% if can? :create, EducodeSales::ActivityFollowUp %>
|
70
|
+
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_event">添加跟进记录</a>
|
71
|
+
<% end %>
|
72
|
+
<% if can? :update, EducodeSales::Activity %>
|
73
|
+
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
|
74
|
+
<% end %>
|
75
|
+
<% if can? :destroy, EducodeSales::Activity %>
|
76
|
+
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
77
|
+
<% end %>
|
78
|
+
</script>
|
79
|
+
|
80
|
+
<script type="text/html" id="teachers">
|
81
|
+
<a href="javascript:void(0);" lay-event="teachers" class="layui-table-link">{{ d.name}}</a>
|
82
|
+
</script>
|
83
|
+
<script type="text/html" id="teachers_count">
|
84
|
+
<a href="javascript:void(0);" lay-event="teachers_count" class="layui-table-link">{{ d.teachers_count}}</a>
|
85
|
+
</script>
|
86
|
+
<script type="text/html" id="schools_count">
|
87
|
+
<a href="javascript:void(0);" lay-event="schools_count" class="layui-table-link">{{ d.schools_count}}</a>
|
88
|
+
</script>
|
89
|
+
<script>
|
90
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
91
|
+
var $ = layui.jquery,
|
92
|
+
form = layui.form,
|
93
|
+
table = layui.table,
|
94
|
+
request = layui.request,
|
95
|
+
miniPage = layui.miniPage;
|
96
|
+
|
97
|
+
table.render({
|
98
|
+
elem: '#activities_table',
|
99
|
+
url: '/missions/activities',
|
100
|
+
toolbar: '#activity_toolbar',
|
101
|
+
totalRow:true,
|
102
|
+
defaultToolbar: [],
|
103
|
+
cols: [
|
104
|
+
[
|
105
|
+
{
|
106
|
+
field: 'id',
|
107
|
+
title:'序号',type: 'numbers',
|
108
|
+
totalRowText:'合计',
|
109
|
+
width: 60
|
110
|
+
},
|
111
|
+
{
|
112
|
+
field: 'name',
|
113
|
+
title: '活动名称',
|
114
|
+
width: 180,
|
115
|
+
templet: '#teachers'
|
116
|
+
},
|
117
|
+
{
|
118
|
+
field: 'state_id',
|
119
|
+
width: 120,
|
120
|
+
title: '活动状态'
|
121
|
+
},
|
122
|
+
{
|
123
|
+
field: 'clazz_id',
|
124
|
+
width: 120,
|
125
|
+
title: '活动类型'
|
126
|
+
},
|
127
|
+
{
|
128
|
+
field: 'staff',
|
129
|
+
width: 120,
|
130
|
+
title: '销售经理'
|
131
|
+
},
|
132
|
+
{
|
133
|
+
field: 'staff_manage',
|
134
|
+
width: 180,
|
135
|
+
title: '生态经理'
|
136
|
+
},
|
137
|
+
{
|
138
|
+
field: 'sponsor',
|
139
|
+
width: 120,
|
140
|
+
title: '主办方'
|
141
|
+
},
|
142
|
+
{
|
143
|
+
field: 'linkman',
|
144
|
+
width: 120,
|
145
|
+
title: '联系人'
|
146
|
+
},
|
147
|
+
{
|
148
|
+
field: 'phone',
|
149
|
+
width: 120,
|
150
|
+
title: '联系电话'
|
151
|
+
},
|
152
|
+
{
|
153
|
+
field: 'scale',
|
154
|
+
width: 120,
|
155
|
+
title: '规模'
|
156
|
+
},
|
157
|
+
{
|
158
|
+
field: 'address',
|
159
|
+
width: 120,
|
160
|
+
title: '会议地点'
|
161
|
+
},
|
162
|
+
{
|
163
|
+
field: 'meeting_form',
|
164
|
+
width: 120,
|
165
|
+
title: '会议形式'
|
166
|
+
},
|
167
|
+
{
|
168
|
+
field: 'staff_assist',
|
169
|
+
width: 180,
|
170
|
+
title: '协助人员'
|
171
|
+
},
|
172
|
+
{
|
173
|
+
field: 'invitations',
|
174
|
+
width: 180,
|
175
|
+
title: '邀请专家'
|
176
|
+
},
|
177
|
+
{
|
178
|
+
field: 'expert',
|
179
|
+
width: 180,
|
180
|
+
title: '报告专家'
|
181
|
+
},
|
182
|
+
{
|
183
|
+
field: 'start_at',
|
184
|
+
width: 200,
|
185
|
+
title: '时间',
|
186
|
+
sort: true,
|
187
|
+
},
|
188
|
+
{
|
189
|
+
field: 'days',
|
190
|
+
title: '天数',
|
191
|
+
width: 200
|
192
|
+
},
|
193
|
+
{
|
194
|
+
field: 'schools_count',
|
195
|
+
title: '学校数',
|
196
|
+
width: 200,
|
197
|
+
totalRow: true,
|
198
|
+
templet: '#schools_count'
|
199
|
+
},
|
200
|
+
{
|
201
|
+
field: 'teachers_count',
|
202
|
+
title: '教师数',
|
203
|
+
width: 200,
|
204
|
+
totalRow:true,
|
205
|
+
templet: '#teachers_count'
|
206
|
+
},
|
207
|
+
{
|
208
|
+
field: 'students_count',
|
209
|
+
title: '学生数',
|
210
|
+
totalRow:'{{ parseInt(d.TOTAL_NUMS) }}',
|
211
|
+
width: 200
|
212
|
+
},
|
213
|
+
{
|
214
|
+
title: '操作',
|
215
|
+
width: 260,
|
216
|
+
toolbar: '#currentTableBar',
|
217
|
+
align: "center",
|
218
|
+
fixed: 'right'
|
219
|
+
}
|
220
|
+
]
|
221
|
+
],
|
222
|
+
limit: 20,
|
223
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
224
|
+
page: true
|
225
|
+
});
|
226
|
+
|
227
|
+
var sort = {};
|
228
|
+
table.on('sort(activities_table)', function (obj) {
|
229
|
+
sort.field = obj.field;
|
230
|
+
sort.order = obj.type;
|
231
|
+
table.reload('activities_table', {
|
232
|
+
initSort: obj,
|
233
|
+
where: {
|
234
|
+
sort: sort
|
235
|
+
}
|
236
|
+
});
|
237
|
+
})
|
238
|
+
// 监听搜索操作
|
239
|
+
form.on('submit(search_activity)', function (data) {
|
240
|
+
search = data.field
|
241
|
+
table.reload('activities_table', {
|
242
|
+
page: {
|
243
|
+
curr: 1
|
244
|
+
},
|
245
|
+
where: {q: search, sort: sort}
|
246
|
+
}, 'data');
|
247
|
+
return false;
|
248
|
+
});
|
249
|
+
table.on('toolbar(activities_table)', function (obj) {
|
250
|
+
if (obj.event === 'add') { // 监听添加操作
|
251
|
+
var content = miniPage.getHrefContent('/missions/activities/new');
|
252
|
+
var openWH = miniPage.getOpenWidthHeight();
|
253
|
+
index = layer.open({
|
254
|
+
title: '添加活动',
|
255
|
+
type: 1,
|
256
|
+
shade: 0.2,
|
257
|
+
maxmin: true,
|
258
|
+
shadeClose: true,
|
259
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
260
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
261
|
+
content: content,
|
262
|
+
success: function (layero, index) {
|
263
|
+
form.render('select');
|
264
|
+
}
|
265
|
+
});
|
266
|
+
$(window).on("resize", function () {
|
267
|
+
layer.full(index);
|
268
|
+
});
|
269
|
+
}
|
270
|
+
else if (obj.event === 'import') { //
|
271
|
+
var content = miniPage.getHrefContent('/missions/teachers/import');
|
272
|
+
var openWH = miniPage.getOpenWidthHeight();
|
273
|
+
import_index = layer.open({
|
274
|
+
title: '导入数据',
|
275
|
+
type: 1,
|
276
|
+
shade: 0.2,
|
277
|
+
shadeClose: true,
|
278
|
+
area: ['200px', '100px'],
|
279
|
+
offset: 'auto',
|
280
|
+
closeBtn: 0,
|
281
|
+
content: content,
|
282
|
+
});
|
283
|
+
$(window).on("resize", function () {
|
284
|
+
layer.full(index);
|
285
|
+
});
|
286
|
+
}
|
287
|
+
});
|
288
|
+
|
289
|
+
table.on('tool(activities_table)', function (obj) {
|
290
|
+
var data = obj.data;
|
291
|
+
var id = data.id
|
292
|
+
if (obj.event === 'edit') {
|
293
|
+
var content = miniPage.getHrefContent('/missions/activities/' + id + '/edit');
|
294
|
+
var openWH = miniPage.getOpenWidthHeight();
|
295
|
+
var index = layer.open({
|
296
|
+
title: '编辑',
|
297
|
+
type: 1,
|
298
|
+
shade: 0.2,
|
299
|
+
maxmin: true,
|
300
|
+
shadeClose: true,
|
301
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
302
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
303
|
+
content: content,
|
304
|
+
success: function (layero, index) {
|
305
|
+
// $("#name").val(data.name);
|
306
|
+
// 重新渲染弹层中的下拉选择框select
|
307
|
+
form.render('select');
|
308
|
+
},
|
309
|
+
});
|
310
|
+
$(window).on("resize", function () {
|
311
|
+
layer.full(index);
|
312
|
+
});
|
313
|
+
return false;
|
314
|
+
} else if (obj.event === 'delete') {
|
315
|
+
layer.confirm('确定删除' + data.name, function (index) {
|
316
|
+
request.delete('missions/activities/' + data.id, {}, function (res) {
|
317
|
+
layer.close(index);
|
318
|
+
table.reload("activities_table")
|
319
|
+
})
|
320
|
+
});
|
321
|
+
} else if (obj.event === 'teachers') {
|
322
|
+
activity_id = obj.data.id
|
323
|
+
var content = miniPage.getHrefContent('/missions/activities/show_teachers');
|
324
|
+
openWH = miniPage.getOpenWidthHeight();
|
325
|
+
index = layer.open({
|
326
|
+
title: '活动列表/' + data.name,
|
327
|
+
type: 1,
|
328
|
+
shade: 0.2,
|
329
|
+
maxmin: true,
|
330
|
+
shadeClose: true,
|
331
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
332
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
333
|
+
content: content,
|
334
|
+
success: function (layero, index) {
|
335
|
+
form.render('select');
|
336
|
+
},
|
337
|
+
});
|
338
|
+
$(window).on("resize", function () {
|
339
|
+
layer.full(index);
|
340
|
+
});
|
341
|
+
return false;
|
342
|
+
}
|
343
|
+
else if (obj.event === 'teachers_count') {
|
344
|
+
activity_id = obj.data.id;
|
345
|
+
school_id = '';
|
346
|
+
content = miniPage.getHrefContent('/missions/activities/show_teachers');
|
347
|
+
openWH = miniPage.getOpenWidthHeight();
|
348
|
+
index2 = layer.open({
|
349
|
+
title: '活动列表/' + data.name,
|
350
|
+
type: 1,
|
351
|
+
shade: 0.2,
|
352
|
+
maxmin: true,
|
353
|
+
shadeClose: true,
|
354
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
355
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
356
|
+
content: content,
|
357
|
+
success: function (layero, index) {
|
358
|
+
form.render('select');
|
359
|
+
},
|
360
|
+
});
|
361
|
+
$(window).on("resize", function () {
|
362
|
+
layer.full(index);
|
363
|
+
});
|
364
|
+
return false;
|
365
|
+
} else if (obj.event == 'schools_count') {
|
366
|
+
activity_id = obj.data.id;
|
367
|
+
activity_name = data.name;
|
368
|
+
school_id = '';
|
369
|
+
content = miniPage.getHrefContent('/missions/activities/' + obj.data.id +'/show_schools');
|
370
|
+
openWH = miniPage.getOpenWidthHeight();
|
371
|
+
index2 = layer.open({
|
372
|
+
title: '活动列表/' + data.name,
|
373
|
+
type: 1,
|
374
|
+
shade: 0.2,
|
375
|
+
maxmin: true,
|
376
|
+
shadeClose: true,
|
377
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
378
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
379
|
+
content: content,
|
380
|
+
success: function (layero, index) {
|
381
|
+
form.render('select');
|
382
|
+
},
|
383
|
+
});
|
384
|
+
$(window).on("resize", function () {
|
385
|
+
layer.full(index);
|
386
|
+
});
|
387
|
+
return false;
|
388
|
+
} else if (obj.event === 'add_event') { // 监听添加操作
|
389
|
+
activity_id = data.id
|
390
|
+
var content = miniPage.getHrefContent('/missions/activities/new_follow_up?id=' + data.id);
|
391
|
+
var openWH = miniPage.getOpenWidthHeight();
|
392
|
+
followup_index = layer.open({
|
393
|
+
title: '添加跟进记录',
|
394
|
+
type: 1,
|
395
|
+
shade: 0.2,
|
396
|
+
maxmin: true,
|
397
|
+
shadeClose: true,
|
398
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
399
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
400
|
+
content: content,
|
401
|
+
success: function (layero, index) {
|
402
|
+
form.render('select');
|
403
|
+
}
|
404
|
+
});
|
405
|
+
$(window).on("resize", function () {
|
406
|
+
layer.full(followup_index);
|
407
|
+
});
|
408
|
+
}
|
409
|
+
});
|
410
|
+
|
411
|
+
});
|
412
|
+
</script>
|
413
|
+
<style>
|
414
|
+
.layui-table-tool-temp{
|
415
|
+
padding-right: 30px; !important;
|
416
|
+
}
|
417
|
+
|
418
|
+
</style>
|
@@ -9,6 +9,18 @@
|
|
9
9
|
class="layui-input" value="<%= @activity.name %>">
|
10
10
|
</div>
|
11
11
|
</div>
|
12
|
+
<div class="layui-inline">
|
13
|
+
<label class="layui-form-label required">活动类型</label>
|
14
|
+
<div class="layui-input-block">
|
15
|
+
<%= select_tag "clazz_id", options_for_select(@clazz, @activity.clazz_id), { 'lay-filter': 'clazz_id', class: 'required' } %>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
<div class="layui-inline">
|
19
|
+
<label class="layui-form-label required">活动状态</label>
|
20
|
+
<div class="layui-input-block">
|
21
|
+
<%= select_tag "state_id", options_for_select(EducodeSales::Activity.state_ids.keys, @activity.state_id), { 'lay-filter': 'clazz_id', class: 'required' } %>
|
22
|
+
</div>
|
23
|
+
</div>
|
12
24
|
<div class="layui-inline">
|
13
25
|
<label class="layui-form-label required">活动时间</label>
|
14
26
|
<div class="layui-input-block">
|
@@ -23,6 +35,12 @@
|
|
23
35
|
class="layui-input" value="<%= @activity.days %>">
|
24
36
|
</div>
|
25
37
|
</div>
|
38
|
+
<div class="layui-inline">
|
39
|
+
<label class="layui-form-label">销售经理</label>
|
40
|
+
<div class="layui-input-block">
|
41
|
+
<div id="sales_list" style="width: 163px;"></div>
|
42
|
+
</div>
|
43
|
+
</div>
|
26
44
|
<div class="layui-inline">
|
27
45
|
<label class="layui-form-label">生态经理</label>
|
28
46
|
<div class="layui-input-block">
|
@@ -35,6 +53,48 @@
|
|
35
53
|
<div id="staff_assist_list" style="width: 193px;"></div>
|
36
54
|
</div>
|
37
55
|
</div>
|
56
|
+
<div class="layui-inline">
|
57
|
+
<label class="layui-form-label">主办方</label>
|
58
|
+
<div class="layui-input-block">
|
59
|
+
<input type="text" name="sponsor" class="layui-input" value="<%= @activity.sponsor %>">
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
<div class="layui-inline">
|
63
|
+
<label class="layui-form-label">联系人</label>
|
64
|
+
<div class="layui-input-block">
|
65
|
+
<input type="text" name="linkman" class="layui-input" value="<%= @activity.linkman %>">
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
<div class="layui-inline">
|
69
|
+
<label class="layui-form-label">联系电话</label>
|
70
|
+
<div class="layui-input-block">
|
71
|
+
<input type="text" name="phone" class="layui-input" value="<%= @activity.phone %>">
|
72
|
+
</div>
|
73
|
+
</div>
|
74
|
+
<div class="layui-inline">
|
75
|
+
<label class="layui-form-label">规模</label>
|
76
|
+
<div class="layui-input-block">
|
77
|
+
<input type="text" name="scale" class="layui-input" value="<%= @activity.scale %>">
|
78
|
+
</div>
|
79
|
+
</div>
|
80
|
+
<div class="layui-inline">
|
81
|
+
<label class="layui-form-label">会议地点</label>
|
82
|
+
<div class="layui-input-block">
|
83
|
+
<input type="text" name="address" class="layui-input" value="<%= @activity.address %>">
|
84
|
+
</div>
|
85
|
+
</div>
|
86
|
+
<div class="layui-inline">
|
87
|
+
<label class="layui-form-label">会议形式</label>
|
88
|
+
<div class="layui-input-block">
|
89
|
+
<input type="text" name="meeting_form" class="layui-input" value="<%= @activity.meeting_form %>">
|
90
|
+
</div>
|
91
|
+
</div>
|
92
|
+
<div class="layui-inline">
|
93
|
+
<label class="layui-form-label">邀请专家</label>
|
94
|
+
<div class="layui-input-block">
|
95
|
+
<div id="invitation_list" style="width: 600px;"></div>
|
96
|
+
</div>
|
97
|
+
</div>
|
38
98
|
<div class="layui-inline">
|
39
99
|
<label class="layui-form-label">报告专家</label>
|
40
100
|
<div class="layui-input-block">
|
@@ -116,6 +176,15 @@
|
|
116
176
|
data: gon.staff_manage,
|
117
177
|
filterable: true,
|
118
178
|
})
|
179
|
+
var sales_manage = xmSelect.render({
|
180
|
+
el: '#sales_list',
|
181
|
+
name: 'sales_id',
|
182
|
+
radio: true,
|
183
|
+
data: gon.sales_manage,
|
184
|
+
filterable: true,
|
185
|
+
})
|
186
|
+
|
187
|
+
|
119
188
|
|
120
189
|
var staff_assist = xmSelect.render({
|
121
190
|
el: '#staff_assist_list',
|
@@ -142,6 +211,26 @@
|
|
142
211
|
data: gon.experts
|
143
212
|
})
|
144
213
|
|
214
|
+
var invitation_select = xmSelect.render({
|
215
|
+
el: '#invitation_list',
|
216
|
+
filterable: true,
|
217
|
+
name: 'expert_ids',
|
218
|
+
remoteSearch: true,
|
219
|
+
remoteMethod: function(val, cb, show){
|
220
|
+
if(!val){
|
221
|
+
return cb([]);
|
222
|
+
}
|
223
|
+
request.get('missions/search_edu_user?q=' + val, {}, function (res) {
|
224
|
+
if (res.data.length == 0) {
|
225
|
+
cb([{value: val, name: val}])
|
226
|
+
} else {
|
227
|
+
cb(res.data);
|
228
|
+
}
|
229
|
+
})
|
230
|
+
},
|
231
|
+
data: gon.invitation_list
|
232
|
+
})
|
233
|
+
|
145
234
|
$(body).on("click", "#delete", function() {
|
146
235
|
document.getElementById("attachment").innerHTML = "";
|
147
236
|
$("#attachment_id").val('');
|
@@ -159,6 +248,16 @@
|
|
159
248
|
expertids.push(['', d.name]);
|
160
249
|
}
|
161
250
|
})
|
251
|
+
var invitation_ids = [];
|
252
|
+
invitation_select.getValue().forEach(function(d) {
|
253
|
+
if (typeof(d.value) == 'number') {
|
254
|
+
invitation_ids.push([d.value, d.name]);
|
255
|
+
} else {
|
256
|
+
invitation_ids.push(['', d.name]);
|
257
|
+
|
258
|
+
}
|
259
|
+
})
|
260
|
+
data.field.invitation_ids = invitation_ids;
|
162
261
|
data.field.expert_ids = expertids;
|
163
262
|
request.authPut("missions/activities/" + <%= @activity.id %>, data.field, function (res) {
|
164
263
|
if (res.success === false) {
|
@@ -0,0 +1,19 @@
|
|
1
|
+
json.data do
|
2
|
+
json.array! @data do |d|
|
3
|
+
json.id d.id
|
4
|
+
json.description d.description
|
5
|
+
json.name d.activity.name
|
6
|
+
json.info_id d.info_id
|
7
|
+
json.clazz_id d.activity.clazz_id
|
8
|
+
json.staff d.activity.sales&.user&.real_name || d.activity.staff&.user&.real_name
|
9
|
+
json.staff_manage d.activity.manages.map { |d| d.activity.staff.user.real_name}.uniq.join("、")
|
10
|
+
json.follow_up d.staff.user.real_name
|
11
|
+
json.created_at d.created_at.to_s
|
12
|
+
json.state_id d.activity.state_id
|
13
|
+
json.advise d.advise || ''
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
json.code 0
|
19
|
+
json.count @data.total_count
|