educode_sales 0.9.67 → 0.9.68
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 +52 -38
- data/app/controllers/educode_sales/businesses_controller.rb +1 -1
- data/app/controllers/educode_sales/operation_plans_controller.rb +8 -4
- data/app/controllers/educode_sales/plans_controller.rb +173 -11
- data/app/controllers/educode_sales/recycles_controller.rb +11 -1
- data/app/controllers/educode_sales/teachers_controller.rb +4 -4
- data/app/controllers/educode_sales/upload_files_controller.rb +9 -2
- data/app/models/educode_sales/activity.rb +4 -0
- data/app/models/educode_sales/assessments_setting.rb +2 -2
- data/app/models/educode_sales/business_info.rb +9 -0
- data/app/models/educode_sales/sale_plan.rb +3 -1
- data/app/models/educode_sales/staff.rb +2 -0
- data/app/views/educode_sales/activities/_follows.html.erb +50 -36
- data/app/views/educode_sales/activities/_index.html.erb +82 -9
- data/app/views/educode_sales/activities/edit.html.erb +25 -68
- data/app/views/educode_sales/activities/files.html.erb +157 -0
- data/app/views/educode_sales/activities/files.json.jbuilder +13 -0
- data/app/views/educode_sales/activities/follow_ups.json.jbuilder +1 -1
- data/app/views/educode_sales/activities/index.json.jbuilder +2 -2
- data/app/views/educode_sales/activities/new.html.erb +21 -60
- data/app/views/educode_sales/activities/upload_file.html.erb +43 -0
- data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +3 -0
- data/app/views/educode_sales/businesses/new.html.erb +1 -1
- data/app/views/educode_sales/plans/_yearPlan.html.erb +234 -0
- data/app/views/educode_sales/plans/business_infos.json.jbuilder +23 -0
- data/app/views/educode_sales/plans/edit_bussiness_info.html.erb +79 -0
- data/app/views/educode_sales/plans/edit_bussiness_info_extra.html.erb +260 -0
- data/app/views/educode_sales/plans/edit_year_plan.html.erb +237 -0
- data/app/views/educode_sales/plans/index.html.erb +8 -0
- data/app/views/educode_sales/plans/new_year.html.erb +204 -0
- data/app/views/educode_sales/plans/plan_business_infos.json.jbuilder +42 -0
- data/app/views/educode_sales/plans/years_plan.json.jbuilder +17 -0
- data/app/views/educode_sales/recycles/_monthly.html.erb +1 -1
- data/app/views/educode_sales/recycles/_yearPlan.html.erb +118 -0
- data/app/views/educode_sales/recycles/index.html.erb +26 -22
- data/app/views/educode_sales/recycles/monthPlan.json.jbuilder +0 -1
- data/app/views/educode_sales/recycles/yearPlan.json.jbuilder +14 -0
- data/config/routes.rb +19 -0
- data/db/migrate/20230330141213_create_educode_sales_activity_follow_ups.rb +6 -0
- data/db/migrate/20230405074036_add_year_to_sale_plans.rb +38 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +18 -3
@@ -1,5 +1,5 @@
|
|
1
1
|
<div style="margin: 10px 10px 10px 10px">
|
2
|
-
<form class="layui-form layui-form-pane"
|
2
|
+
<form class="layui-form layui-form-pane">
|
3
3
|
<div class="layui-form-item">
|
4
4
|
<div class="layui-inline">
|
5
5
|
<label class="layui-form-label">活动名称</label>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<div class="layui-inline">
|
17
17
|
<label class="layui-form-label">销售经理</label>
|
18
18
|
<div class="layui-input-inline">
|
19
|
-
<%= select_tag "sales_id", options_for_select(
|
19
|
+
<%= select_tag "sales_id", options_for_select(@staffs), { include_blank: true } %>
|
20
20
|
</div>
|
21
21
|
</div>
|
22
22
|
|
@@ -33,19 +33,10 @@
|
|
33
33
|
<table class="layui-hide" id="activity_followp_table" style="min-height: 300px;" lay-filter="activity_followp_table"></table>
|
34
34
|
</div>
|
35
35
|
<script type="text/html" id="currentTableBar_follows">
|
36
|
-
|
36
|
+
<% if can? :advise, EducodeSales::ActivityFollowUp %>
|
37
|
+
<a class="layui-btn layui-btn-default layui-btn-xs data-count-edit" lay-event="advise">团队建议</a>
|
38
|
+
<% end %>
|
37
39
|
</script>
|
38
|
-
<script type="text/html" id="teacher_name">
|
39
|
-
{{# if (d.login) { }}
|
40
|
-
<a href="<%= base_url%>/users/{{d.login}}" class="layui-table-link" target="_blank">{{ d.teacher }}</a>
|
41
|
-
{{# } else {}}
|
42
|
-
<a href="javascript:;" class="">{{ d.teacher }}</a>
|
43
|
-
{{# }}}
|
44
|
-
</script>
|
45
|
-
<script type="text/html" id="school">
|
46
|
-
<a href="<%= base_url%>/colleges/{{d.school_id}}/statistics" class="layui-table-link" target="_blank">{{ d.school }}</a>
|
47
|
-
</script>
|
48
|
-
|
49
40
|
|
50
41
|
<script>
|
51
42
|
layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate'], function () {
|
@@ -56,20 +47,13 @@
|
|
56
47
|
miniPage = layui.miniPage,
|
57
48
|
laydate = layui.laydate;
|
58
49
|
|
59
|
-
|
60
|
-
|
61
|
-
laydate.render({
|
62
|
-
elem: '#follows_date',
|
63
|
-
range: true
|
64
|
-
});
|
65
|
-
|
66
|
-
table = layui.table;
|
50
|
+
var table = layui.table;
|
67
51
|
table.render({
|
68
52
|
elem: '#activity_followp_table',
|
69
53
|
url: '/missions/activities/follow_ups',
|
70
54
|
defaultToolbar: ['filter'],
|
71
55
|
initSort: {
|
72
|
-
field: 'created_at' ,type: 'desc'
|
56
|
+
field: 'created_at' ,type: 'desc'
|
73
57
|
},
|
74
58
|
cols: [
|
75
59
|
[
|
@@ -117,22 +101,22 @@
|
|
117
101
|
{
|
118
102
|
field: 'created_at',
|
119
103
|
width: 180,
|
120
|
-
title: '
|
104
|
+
title: '最新跟进时间',
|
121
105
|
sort: true,
|
122
106
|
},
|
123
107
|
{
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
108
|
+
field: 'advise',
|
109
|
+
width: 300,
|
110
|
+
title: '团队建议',
|
111
|
+
templet:'<div><span title="{{d.advise}}">{{d.advise}}</span></div>'
|
128
112
|
},
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
113
|
+
{
|
114
|
+
title: '操作',
|
115
|
+
width: 200,
|
116
|
+
toolbar: '#currentTableBar_follows',
|
117
|
+
align: "center",
|
118
|
+
fixed: 'right'
|
119
|
+
}
|
136
120
|
]
|
137
121
|
],
|
138
122
|
limit: 20,
|
@@ -196,6 +180,36 @@
|
|
196
180
|
$(window).on("resize", function () {
|
197
181
|
layer.full(index);
|
198
182
|
});
|
183
|
+
} else if (obj.event == 'advise') {
|
184
|
+
layer.open({
|
185
|
+
title: '添加团队建议',
|
186
|
+
closeBtn: 0,
|
187
|
+
type: 1,
|
188
|
+
area: '400px;',
|
189
|
+
id: 'LAY_layuipro',
|
190
|
+
content: '<div class="layui-form" lay-filter="edit_project" style="padding: 20px;"><textarea autocomplete="off" type="text" name="name" lay-verify="required" class="layui-textarea">' + data.advise + '</textarea></div>' ,
|
191
|
+
btn: ['保存', '取消'],
|
192
|
+
btn1: function(index, l) {
|
193
|
+
if (l.find("textarea").val().trim() == '') {
|
194
|
+
layer.msg('内容不能为空')
|
195
|
+
return false;
|
196
|
+
} else {
|
197
|
+
request.authPost("/missions/activities/add_advise", {content: l.find("textarea").val().trim(), id: data.id}, function(res) {
|
198
|
+
if (res.success == false) {
|
199
|
+
layer.alert(res.msg);
|
200
|
+
} else {
|
201
|
+
layer.close(index);
|
202
|
+
table.reload('activity_followp_table');
|
203
|
+
}
|
204
|
+
})
|
205
|
+
}
|
206
|
+
|
207
|
+
return false
|
208
|
+
},
|
209
|
+
btn2: function(index, l) {
|
210
|
+
layer.close(index)
|
211
|
+
}
|
212
|
+
});
|
199
213
|
}
|
200
214
|
});
|
201
215
|
|
@@ -203,6 +217,6 @@
|
|
203
217
|
</script>
|
204
218
|
<style>
|
205
219
|
.layui-table-tool-temp{
|
206
|
-
|
220
|
+
padding-right: 30px; !important;
|
207
221
|
}
|
208
222
|
</style>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
</div>
|
9
9
|
</script>
|
10
10
|
<div style="margin: 10px 10px 10px 10px">
|
11
|
-
<form class="layui-form layui-form-pane"
|
11
|
+
<form class="layui-form layui-form-pane">
|
12
12
|
<div class="layui-form-item">
|
13
13
|
<div class="layui-inline ">
|
14
14
|
<label class="layui-form-label">活动名称</label>
|
@@ -37,7 +37,7 @@
|
|
37
37
|
<div class="layui-inline">
|
38
38
|
<label class="layui-form-label">生态经理</label>
|
39
39
|
<div class="layui-input-inline">
|
40
|
-
<%= select_tag "manage", options_for_select(@
|
40
|
+
<%= select_tag "manage", options_for_select(@staff_manage, ""), { include_blank: true } %>
|
41
41
|
</div>
|
42
42
|
</div>
|
43
43
|
<div class="layui-inline">
|
@@ -67,11 +67,19 @@
|
|
67
67
|
|
68
68
|
<script type="text/html" id="currentTableBar">
|
69
69
|
<% if can? :create, EducodeSales::ActivityFollowUp %>
|
70
|
-
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_event"
|
70
|
+
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_event">添加跟进</a>
|
71
71
|
<% end %>
|
72
|
+
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_plan">添加计划</a>
|
73
|
+
<% if can? :advise, EducodeSales::ActivityFollowUp %>
|
74
|
+
<a class="layui-btn layui-btn-default layui-btn-xs data-count-edit" lay-event="advise">建议</a>
|
75
|
+
<% end %>
|
76
|
+
|
72
77
|
<% if can? :update, EducodeSales::Activity %>
|
73
78
|
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
|
74
79
|
<% end %>
|
80
|
+
<% if can? :show_file, EducodeSales::Activity %>
|
81
|
+
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="file">附件</a>
|
82
|
+
<% end %>
|
75
83
|
<% if can? :destroy, EducodeSales::Activity %>
|
76
84
|
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
77
85
|
<% end %>
|
@@ -174,11 +182,6 @@
|
|
174
182
|
width: 180,
|
175
183
|
title: '邀请专家'
|
176
184
|
},
|
177
|
-
{
|
178
|
-
field: 'expert',
|
179
|
-
width: 180,
|
180
|
-
title: '报告专家'
|
181
|
-
},
|
182
185
|
{
|
183
186
|
field: 'start_at',
|
184
187
|
width: 200,
|
@@ -212,7 +215,7 @@
|
|
212
215
|
},
|
213
216
|
{
|
214
217
|
title: '操作',
|
215
|
-
width:
|
218
|
+
width: 380,
|
216
219
|
toolbar: '#currentTableBar',
|
217
220
|
align: "center",
|
218
221
|
fixed: 'right'
|
@@ -311,6 +314,26 @@
|
|
311
314
|
layer.full(index);
|
312
315
|
});
|
313
316
|
return false;
|
317
|
+
} else if (obj.event === 'add_plan') {
|
318
|
+
var content = miniPage.getHrefContent('/missions/operation_plans/new_week');
|
319
|
+
var openWH = miniPage.getOpenWidthHeight();
|
320
|
+
new_weelPlan_index = layer.open({
|
321
|
+
title: '添加计划',
|
322
|
+
type: 1,
|
323
|
+
shade: 0.2,
|
324
|
+
maxmin: true,
|
325
|
+
shadeClose: true,
|
326
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
327
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
328
|
+
content: content,
|
329
|
+
success: function (layero, index) {
|
330
|
+
// 重新渲染弹层中的下拉选择框select
|
331
|
+
form.render('select');
|
332
|
+
}
|
333
|
+
});
|
334
|
+
$(window).on("resize", function () {
|
335
|
+
layer.full(index);
|
336
|
+
});
|
314
337
|
} else if (obj.event === 'delete') {
|
315
338
|
layer.confirm('确定删除' + data.name, function (index) {
|
316
339
|
request.delete('missions/activities/' + data.id, {}, function (res) {
|
@@ -405,6 +428,56 @@
|
|
405
428
|
$(window).on("resize", function () {
|
406
429
|
layer.full(followup_index);
|
407
430
|
});
|
431
|
+
} else if (obj.event == 'advise') {
|
432
|
+
layer.open({
|
433
|
+
title: '添加团队建议',
|
434
|
+
closeBtn: 0,
|
435
|
+
type: 1,
|
436
|
+
area: '400px;',
|
437
|
+
id: 'LAY_layuipro',
|
438
|
+
content: '<div class="layui-form" lay-filter="edit_project" style="padding: 20px;"><textarea autocomplete="off" type="text" name="name" lay-verify="required" class="layui-textarea">' + data.advise + '</textarea></div>' ,
|
439
|
+
btn: ['保存', '取消'],
|
440
|
+
btn1: function(index, l) {
|
441
|
+
if (l.find("textarea").val().trim() == '') {
|
442
|
+
layer.msg('内容不能为空')
|
443
|
+
return false;
|
444
|
+
} else {
|
445
|
+
request.authPut("/missions/activities/" + data.id + "/update_advise", {content: l.find("textarea").val().trim()}, function(res) {
|
446
|
+
if (res.success == false) {
|
447
|
+
layer.alert(res.msg);
|
448
|
+
} else {
|
449
|
+
layer.close(index);
|
450
|
+
table.reload('activity_followp_table');
|
451
|
+
}
|
452
|
+
})
|
453
|
+
}
|
454
|
+
|
455
|
+
return false
|
456
|
+
},
|
457
|
+
btn2: function(index, l) {
|
458
|
+
layer.close(index)
|
459
|
+
}
|
460
|
+
});
|
461
|
+
} else if (obj.event == 'file') {
|
462
|
+
activity_id = data.id
|
463
|
+
var content = miniPage.getHrefContent('/missions/activities/' + data.id + "/files");
|
464
|
+
var openWH = miniPage.getOpenWidthHeight();
|
465
|
+
followup_index = layer.open({
|
466
|
+
title: '附件管理',
|
467
|
+
type: 1,
|
468
|
+
shade: 0.2,
|
469
|
+
maxmin: true,
|
470
|
+
shadeClose: true,
|
471
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
472
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
473
|
+
content: content,
|
474
|
+
success: function (layero, index) {
|
475
|
+
form.render('select');
|
476
|
+
}
|
477
|
+
});
|
478
|
+
$(window).on("resize", function () {
|
479
|
+
layer.full(followup_index);
|
480
|
+
});
|
408
481
|
}
|
409
482
|
});
|
410
483
|
|
@@ -4,88 +4,81 @@
|
|
4
4
|
<div class="layui-form-item">
|
5
5
|
<div class="layui-inline">
|
6
6
|
<label class="layui-form-label required">活动名称</label>
|
7
|
-
<div class="layui-input-block">
|
8
|
-
<input type="text" name="name" required lay-verify="required"
|
9
|
-
class="layui-input" value="<%= @activity.name %>">
|
7
|
+
<div class="layui-input-block" style="width: 200px;">
|
8
|
+
<input type="text" name="name" required lay-verify="required" class="layui-input" value="<%= @activity.name %>">
|
10
9
|
</div>
|
11
10
|
</div>
|
12
11
|
<div class="layui-inline">
|
13
12
|
<label class="layui-form-label required">活动类型</label>
|
14
|
-
<div class="layui-input-block">
|
13
|
+
<div class="layui-input-block" style="width: 200px;">
|
15
14
|
<%= select_tag "clazz_id", options_for_select(@clazz, @activity.clazz_id), { 'lay-filter': 'clazz_id', class: 'required' } %>
|
16
15
|
</div>
|
17
16
|
</div>
|
18
17
|
<div class="layui-inline">
|
19
18
|
<label class="layui-form-label required">活动状态</label>
|
20
|
-
<div class="layui-input-block">
|
19
|
+
<div class="layui-input-block" style="width: 200px;">
|
21
20
|
<%= select_tag "state_id", options_for_select(EducodeSales::Activity.state_ids.keys, @activity.state_id), { 'lay-filter': 'clazz_id', class: 'required' } %>
|
22
21
|
</div>
|
23
22
|
</div>
|
24
23
|
<div class="layui-inline">
|
25
24
|
<label class="layui-form-label required">活动时间</label>
|
26
|
-
<div class="layui-input-block">
|
25
|
+
<div class="layui-input-block" style="width: 200px;">
|
27
26
|
<input type="text" name="start_at" required lay-verify="required" class="layui-input" id="time" placeholder="请选择时间"
|
28
27
|
value="<%= @activity.start_at&.to_s(:date) %>">
|
29
28
|
</div>
|
30
29
|
</div>
|
31
30
|
<div class="layui-inline">
|
32
31
|
<label class="layui-form-label required">活动天数</label>
|
33
|
-
<div class="layui-input-block">
|
32
|
+
<div class="layui-input-block" style="width: 200px;">
|
34
33
|
<input type="text" name="days" required lay-verify="required"
|
35
34
|
class="layui-input" value="<%= @activity.days %>">
|
36
35
|
</div>
|
37
36
|
</div>
|
38
37
|
<div class="layui-inline">
|
39
38
|
<label class="layui-form-label">销售经理</label>
|
40
|
-
<div class="layui-input-block">
|
39
|
+
<div class="layui-input-block" style="width: 200px;">
|
41
40
|
<div id="sales_list" style="width: 163px;"></div>
|
42
41
|
</div>
|
43
42
|
</div>
|
44
43
|
<div class="layui-inline">
|
45
44
|
<label class="layui-form-label">生态经理</label>
|
46
|
-
<div class="layui-input-block">
|
45
|
+
<div class="layui-input-block" style="width: 200px;">
|
47
46
|
<div id="staff_manage_list" style="width: 163px;"></div>
|
48
47
|
</div>
|
49
48
|
</div>
|
50
|
-
<div class="layui-inline">
|
51
|
-
<label class="layui-form-label">协助人员</label>
|
52
|
-
<div class="layui-input-block">
|
53
|
-
<div id="staff_assist_list" style="width: 193px;"></div>
|
54
|
-
</div>
|
55
|
-
</div>
|
56
49
|
<div class="layui-inline">
|
57
50
|
<label class="layui-form-label">主办方</label>
|
58
|
-
<div class="layui-input-block">
|
51
|
+
<div class="layui-input-block" style="width: 200px;">
|
59
52
|
<input type="text" name="sponsor" class="layui-input" value="<%= @activity.sponsor %>">
|
60
53
|
</div>
|
61
54
|
</div>
|
62
55
|
<div class="layui-inline">
|
63
56
|
<label class="layui-form-label">联系人</label>
|
64
|
-
<div class="layui-input-block">
|
57
|
+
<div class="layui-input-block" style="width: 200px;">
|
65
58
|
<input type="text" name="linkman" class="layui-input" value="<%= @activity.linkman %>">
|
66
59
|
</div>
|
67
60
|
</div>
|
68
61
|
<div class="layui-inline">
|
69
62
|
<label class="layui-form-label">联系电话</label>
|
70
|
-
<div class="layui-input-block">
|
63
|
+
<div class="layui-input-block" style="width: 200px;">
|
71
64
|
<input type="text" name="phone" class="layui-input" value="<%= @activity.phone %>">
|
72
65
|
</div>
|
73
66
|
</div>
|
74
67
|
<div class="layui-inline">
|
75
68
|
<label class="layui-form-label">规模</label>
|
76
|
-
<div class="layui-input-block">
|
69
|
+
<div class="layui-input-block" style="width: 200px;">
|
77
70
|
<input type="text" name="scale" class="layui-input" value="<%= @activity.scale %>">
|
78
71
|
</div>
|
79
72
|
</div>
|
80
73
|
<div class="layui-inline">
|
81
74
|
<label class="layui-form-label">会议地点</label>
|
82
|
-
<div class="layui-input-block">
|
75
|
+
<div class="layui-input-block" style="width: 200px;">
|
83
76
|
<input type="text" name="address" class="layui-input" value="<%= @activity.address %>">
|
84
77
|
</div>
|
85
78
|
</div>
|
86
79
|
<div class="layui-inline">
|
87
80
|
<label class="layui-form-label">会议形式</label>
|
88
|
-
<div class="layui-input-block">
|
81
|
+
<div class="layui-input-block" style="width: 200px;">
|
89
82
|
<input type="text" name="meeting_form" class="layui-input" value="<%= @activity.meeting_form %>">
|
90
83
|
</div>
|
91
84
|
</div>
|
@@ -96,26 +89,13 @@
|
|
96
89
|
</div>
|
97
90
|
</div>
|
98
91
|
<div class="layui-inline">
|
99
|
-
<label class="layui-form-label"
|
92
|
+
<label class="layui-form-label">协助人员</label>
|
100
93
|
<div class="layui-input-block">
|
101
|
-
<div id="
|
94
|
+
<div id="staff_assist_list" style="width: 600px;"></div>
|
102
95
|
</div>
|
103
96
|
</div>
|
104
97
|
</div>
|
105
98
|
<div class="layui-form-item">
|
106
|
-
<div class="layui-inline">
|
107
|
-
<label class="layui-form-label">上传附件</label>
|
108
|
-
<div class="layui-input-block">
|
109
|
-
<%= hidden_field_tag 'attachment_id', @activity.attachment&.id %>
|
110
|
-
<span id="attachment">
|
111
|
-
<% if @activity.attachment %>
|
112
|
-
<%= link_to @activity.attachment&.filename.to_s, "/missions/upload_files/download?id=#{@activity.attachment&.id}", target: '_blank' %>
|
113
|
-
<a href="javascript:;" style="color:red;" id="delete">删除</a>
|
114
|
-
<% end %>
|
115
|
-
</span>
|
116
|
-
<button type="button" class="layui-btn" id="upload_file">上传文件</button>
|
117
|
-
</div>
|
118
|
-
</div>
|
119
99
|
<div class="layui-inline" style="padding-left: 30px">
|
120
100
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交
|
121
101
|
</button>
|
@@ -159,17 +139,6 @@
|
|
159
139
|
}
|
160
140
|
})
|
161
141
|
|
162
|
-
upload.render({
|
163
|
-
elem: '#upload_file',
|
164
|
-
url: '/missions/upload_files',
|
165
|
-
auto: true,
|
166
|
-
accept: 'file',
|
167
|
-
done: function (res) {
|
168
|
-
layer.msg('上传成功');
|
169
|
-
$("#attachment_id").val(res.attachment_id);
|
170
|
-
document.getElementById("attachment").innerHTML = '<a target="_blank" href="' + res.url+ '">' + res.filename + '</a><a href="javascript:;" style="color:red;" id="delete">删除</a>';
|
171
|
-
}
|
172
|
-
});
|
173
142
|
|
174
143
|
var staff_manage = xmSelect.render({
|
175
144
|
el: '#staff_manage_list',
|
@@ -184,17 +153,11 @@
|
|
184
153
|
filterable: true,
|
185
154
|
})
|
186
155
|
|
187
|
-
|
188
156
|
|
189
157
|
var staff_assist = xmSelect.render({
|
190
|
-
el: '#staff_assist_list',
|
191
|
-
data: gon.assists,
|
192
|
-
filterable: true,
|
193
|
-
})
|
194
|
-
var expert = xmSelect.render({
|
195
|
-
el: '#expert_list',
|
158
|
+
el: '#staff_assist_list',
|
196
159
|
filterable: true,
|
197
|
-
name: '
|
160
|
+
name: 'staff_assist_id',
|
198
161
|
remoteSearch: true,
|
199
162
|
remoteMethod: function(val, cb, show){
|
200
163
|
if(!val){
|
@@ -208,13 +171,13 @@
|
|
208
171
|
}
|
209
172
|
})
|
210
173
|
},
|
211
|
-
data: gon.
|
174
|
+
data: gon.assistss
|
212
175
|
})
|
213
176
|
|
214
177
|
var invitation_select = xmSelect.render({
|
215
178
|
el: '#invitation_list',
|
216
179
|
filterable: true,
|
217
|
-
name: '
|
180
|
+
name: 'invitation_ids',
|
218
181
|
remoteSearch: true,
|
219
182
|
remoteMethod: function(val, cb, show){
|
220
183
|
if(!val){
|
@@ -231,21 +194,15 @@
|
|
231
194
|
data: gon.invitation_list
|
232
195
|
})
|
233
196
|
|
234
|
-
$(body).on("click", "#delete", function() {
|
235
|
-
document.getElementById("attachment").innerHTML = "";
|
236
|
-
$("#attachment_id").val('');
|
237
|
-
})
|
238
|
-
|
239
197
|
//监听提交
|
240
198
|
form.on('submit(data-reset-btn)', function (data) {
|
241
199
|
data.field.staff_manage_id = staff_manage.getValue('value');
|
242
|
-
|
243
|
-
|
244
|
-
expert.getValue().forEach(function(d) {
|
200
|
+
var staff_assist_id = [];
|
201
|
+
staff_assist.getValue().forEach(function(d) {
|
245
202
|
if (typeof(d.value) == 'number') {
|
246
|
-
|
203
|
+
staff_assist_id.push([d.value, d.name]);
|
247
204
|
} else {
|
248
|
-
|
205
|
+
staff_assist_id.push(['', d.name]);
|
249
206
|
}
|
250
207
|
})
|
251
208
|
var invitation_ids = [];
|
@@ -258,7 +215,7 @@
|
|
258
215
|
}
|
259
216
|
})
|
260
217
|
data.field.invitation_ids = invitation_ids;
|
261
|
-
data.field.
|
218
|
+
data.field.staff_assist_id = staff_assist_id;
|
262
219
|
request.authPut("missions/activities/" + <%= @activity.id %>, data.field, function (res) {
|
263
220
|
if (res.success === false) {
|
264
221
|
layer.alert(res.msg)
|
@@ -0,0 +1,157 @@
|
|
1
|
+
<%= Gon::Base.render_data %>
|
2
|
+
<script type="text/html" id="toolbarDemo">
|
3
|
+
<div class="layui-btn-container">
|
4
|
+
<span class="table-label">附件信息</span>
|
5
|
+
<% if can? :upload_file, EducodeSales::Activity %>
|
6
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="upload_file">上传文件</button>
|
7
|
+
<% end %>
|
8
|
+
</div>
|
9
|
+
</script>
|
10
|
+
|
11
|
+
<table class="layui-hide" id="file" lay-filter="file"></table>
|
12
|
+
|
13
|
+
<script type="text/html" id="currentTableBar_file">
|
14
|
+
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="preview">预览</a>
|
15
|
+
<% if can? :download_file, EducodeSales::Activity %>
|
16
|
+
<a href="/missions/upload_files/download?id={{d.id}}" class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="download">下载</a>
|
17
|
+
<% end %>
|
18
|
+
<% if can? :delete_file, EducodeSales::Activity %>
|
19
|
+
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
20
|
+
<% end %>
|
21
|
+
</script>
|
22
|
+
|
23
|
+
<script type="text/html" id="showchance">
|
24
|
+
<a href="/missions/businesses" class="layui-table-link">{{ d.chance }}</a>
|
25
|
+
</script>
|
26
|
+
|
27
|
+
<script>
|
28
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
29
|
+
var $ = layui.jquery,
|
30
|
+
form = layui.form,
|
31
|
+
table = layui.table,
|
32
|
+
request = layui.request,
|
33
|
+
upload = layui.upload;
|
34
|
+
miniPage = layui.miniPage;
|
35
|
+
|
36
|
+
|
37
|
+
var activity_id = parent.activity_id;
|
38
|
+
table.render({
|
39
|
+
elem: '#file',
|
40
|
+
url: '/missions/activities/' + activity_id +'/files',
|
41
|
+
toolbar: '#toolbarDemo',
|
42
|
+
defaultToolbar: [],
|
43
|
+
cols: [
|
44
|
+
[
|
45
|
+
{
|
46
|
+
field: 'id',
|
47
|
+
width: 80,
|
48
|
+
title:'序号',type: 'numbers',
|
49
|
+
},
|
50
|
+
{
|
51
|
+
field: 'name',
|
52
|
+
title: '文件名'
|
53
|
+
},
|
54
|
+
{
|
55
|
+
field: 'size',
|
56
|
+
width: 100,
|
57
|
+
title: '文件大小',
|
58
|
+
},
|
59
|
+
{
|
60
|
+
field: 'created_on',
|
61
|
+
width: 200,
|
62
|
+
title: '上传时间',
|
63
|
+
sort: true
|
64
|
+
},
|
65
|
+
{
|
66
|
+
field: 'upload_person',
|
67
|
+
width: 80,
|
68
|
+
totalRow:true,
|
69
|
+
title: '上传人',
|
70
|
+
},
|
71
|
+
{
|
72
|
+
title: '操作',
|
73
|
+
width: 200,
|
74
|
+
toolbar: '#currentTableBar_file',
|
75
|
+
align: "center"
|
76
|
+
}
|
77
|
+
]
|
78
|
+
],
|
79
|
+
limit: 20,
|
80
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
81
|
+
page: true
|
82
|
+
});
|
83
|
+
|
84
|
+
|
85
|
+
var sort = {};
|
86
|
+
table.on('sort(file)', function (obj) {
|
87
|
+
sort.field = obj.field;
|
88
|
+
sort.order = obj.type;
|
89
|
+
table.reload('file', {
|
90
|
+
initSort: obj,
|
91
|
+
where: {
|
92
|
+
sort: sort
|
93
|
+
}
|
94
|
+
});
|
95
|
+
})
|
96
|
+
|
97
|
+
|
98
|
+
table.on('toolbar(file)', function (obj) {
|
99
|
+
if (obj.event === 'upload_file') { //
|
100
|
+
activity_id = parent.activity_id;
|
101
|
+
var content = miniPage.getHrefContent('/missions/activities/upload_file');
|
102
|
+
var openWH = miniPage.getOpenWidthHeight();
|
103
|
+
import_index = layer.open({
|
104
|
+
title: '上传文件',
|
105
|
+
type: 1,
|
106
|
+
shade: 0.2,
|
107
|
+
shadeClose: true,
|
108
|
+
area: ['200px', '100px'],
|
109
|
+
offset: 'auto',
|
110
|
+
closeBtn: 0,
|
111
|
+
content: content,
|
112
|
+
});
|
113
|
+
$(window).on("resize", function () {
|
114
|
+
layer.full(index);
|
115
|
+
});
|
116
|
+
}
|
117
|
+
});
|
118
|
+
|
119
|
+
|
120
|
+
table.on('tool(file)', function (obj) {
|
121
|
+
var data = obj.data;
|
122
|
+
var id = data.id
|
123
|
+
name = data.disk_filename
|
124
|
+
folder = gon.folder
|
125
|
+
if (obj.event === 'preview') {
|
126
|
+
if (data.content_type.split("/")[0] === "image"){
|
127
|
+
layer.photos({
|
128
|
+
photos: { "data": [{"src": '/files/educode_sales/' + name}] }
|
129
|
+
,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机
|
130
|
+
});
|
131
|
+
}else if (data.content_type.split("/")[1] === "pdf"){
|
132
|
+
var pdf = '/files/educode_sales/' + name;
|
133
|
+
var openWH = miniPage.getOpenWidthHeight();
|
134
|
+
layer.open({
|
135
|
+
title: data.name,
|
136
|
+
type: 2,
|
137
|
+
area: ['1000px', '750px'],
|
138
|
+
fixed: false, //不固定
|
139
|
+
maxmin: true,
|
140
|
+
content: pdf
|
141
|
+
});
|
142
|
+
}else{
|
143
|
+
layer.msg("附件不支持预览,请下载查看!")
|
144
|
+
}
|
145
|
+
return false;
|
146
|
+
}else if (obj.event === 'delete') {
|
147
|
+
layer.confirm('确定删除' + data.name, function (index) {
|
148
|
+
request.delete('missions/upload_files/' + data.id + '?disk_filename=' + data.disk_filename, {}, function (res) {
|
149
|
+
layer.close(index);
|
150
|
+
table.reload("file")
|
151
|
+
})
|
152
|
+
});
|
153
|
+
}
|
154
|
+
});
|
155
|
+
|
156
|
+
});
|
157
|
+
</script>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
json.data do
|
2
|
+
json.array! @files do |d|
|
3
|
+
json.id d.id
|
4
|
+
json.name d.filename
|
5
|
+
json.size d.filesize < 1000000 ? (d.filesize.to_f / 1000).round(2).to_s + 'KB' : (d.filesize.to_f / 1000000).round(2).to_s + 'MB'
|
6
|
+
json.created_on d.created_on.to_s
|
7
|
+
json.upload_person d.author.real_name
|
8
|
+
json.disk_filename d.disk_filename
|
9
|
+
json.content_type d.content_type
|
10
|
+
end
|
11
|
+
end
|
12
|
+
json.code 0
|
13
|
+
json.count @files.total_count
|