educode_sales 0.4.5 → 0.4.9
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/businesses_controller.rb +67 -2
- data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
- data/app/controllers/educode_sales/home_controller.rb +4 -0
- data/app/controllers/educode_sales/operation_plans_controller.rb +17 -6
- data/app/controllers/educode_sales/operation_reports_controller.rb +9 -3
- data/app/controllers/educode_sales/operations_controller.rb +1 -1
- data/app/controllers/educode_sales/plans_controller.rb +30 -15
- data/app/controllers/educode_sales/sale_reports_controller.rb +9 -3
- data/app/controllers/educode_sales/sale_trends_controller.rb +8 -7
- data/app/controllers/educode_sales/sales_controller.rb +2 -2
- data/app/controllers/educode_sales/upload_files_controller.rb +99 -0
- data/app/models/educode_sales/common.rb +4 -0
- data/app/models/educode_sales/sale_plan.rb +1 -0
- data/app/views/educode_sales/activities/show_teachers.html.erb +16 -16
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +15 -0
- data/app/views/educode_sales/businesses/file.html.erb +140 -0
- data/app/views/educode_sales/businesses/index.html.erb +64 -10
- data/app/views/educode_sales/businesses/index.json.jbuilder +3 -1
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +17 -0
- data/app/views/educode_sales/businesses/show_follow.html.erb +47 -11
- data/app/views/educode_sales/businesses/show_follow.json.jbuilder +2 -0
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +79 -1
- data/app/views/educode_sales/businesses/time_line.html.erb +58 -0
- data/app/views/educode_sales/businesses/upload_file.html.erb +43 -0
- data/app/views/educode_sales/home/index.html.erb +1 -1
- data/app/views/educode_sales/home/search_operation_teacher.json.jbuilder +12 -0
- data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +7 -7
- data/app/views/educode_sales/operation_plans/_monthly.html.erb +8 -8
- data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +8 -8
- data/app/views/educode_sales/operation_plans/_weekly.html.erb +9 -9
- data/app/views/educode_sales/operation_plans/edit_month.html.erb +6 -6
- data/app/views/educode_sales/operation_plans/edit_week.html.erb +7 -7
- data/app/views/educode_sales/operation_plans/new_month.html.erb +50 -4
- data/app/views/educode_sales/operation_plans/new_monthly.html.erb +12 -0
- data/app/views/educode_sales/operation_plans/new_week.html.erb +47 -4
- data/app/views/educode_sales/operation_plans/new_weekly.html.erb +12 -0
- data/app/views/educode_sales/operation_reports/audit.html.erb +22 -10
- data/app/views/educode_sales/operation_reports/edit.html.erb +22 -10
- data/app/views/educode_sales/operation_reports/show.html.erb +22 -10
- data/app/views/educode_sales/plans/_monthPlan.html.erb +8 -8
- data/app/views/educode_sales/plans/_monthly.html.erb +7 -7
- data/app/views/educode_sales/plans/_weekPlan.html.erb +7 -7
- data/app/views/educode_sales/plans/_weekly.html.erb +8 -8
- data/app/views/educode_sales/plans/edit_month.html.erb +7 -7
- data/app/views/educode_sales/plans/edit_week.html.erb +8 -8
- data/app/views/educode_sales/plans/new_month.html.erb +2 -2
- data/app/views/educode_sales/plans/new_monthly.html.erb +12 -0
- data/app/views/educode_sales/plans/new_week.html.erb +2 -2
- data/app/views/educode_sales/plans/new_weekly.html.erb +12 -0
- data/app/views/educode_sales/sale_reports/audit.html.erb +20 -8
- data/app/views/educode_sales/sale_reports/edit.html.erb +20 -8
- data/app/views/educode_sales/sale_reports/show.html.erb +20 -9
- data/app/views/educode_sales/sale_trends/trends.html.erb +6 -6
- data/app/views/educode_sales/sales/operations.html.erb +0 -4
- data/app/views/educode_sales/teachers/index.html.erb +14 -14
- data/app/views/educode_sales/teachers/show_follow.html.erb +10 -4
- data/app/views/educode_sales/upload_files/index.json.jbuilder +13 -0
- data/app/views/layouts/educode_sales/application.html.erb +11 -3
- data/config/routes.rb +13 -0
- data/db/migrate/20211102085743_add_bidded_date_educode_sales_follow_ups.rb +6 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +10 -3
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
@@ -1,3 +1,4 @@
|
|
1
|
+
<div class="min-height-table">
|
1
2
|
<script type="text/html" id="teacher_toolbar">
|
2
3
|
<div class="layui-btn-container">
|
3
4
|
<span class="table-label">教师列表</span>
|
@@ -5,7 +6,6 @@
|
|
5
6
|
</button>
|
6
7
|
</div>
|
7
8
|
</script>
|
8
|
-
<div class="layuimini-main edit-table">
|
9
9
|
<table class="layui-hide" id="show_teachers_table" style="min-height: 300px;" lay-filter="teachers_table"></table>
|
10
10
|
</div>
|
11
11
|
<script type="text/html" id="show_teachersTableBar">
|
@@ -53,84 +53,84 @@
|
|
53
53
|
elem: '#show_teachers_table',
|
54
54
|
url: '/missions/teachers?activity_id=' + parent.activity_id,
|
55
55
|
toolbar: '#teacher_toolbar',
|
56
|
-
defaultToolbar: [],
|
56
|
+
defaultToolbar: ['filter'],
|
57
57
|
cols: [
|
58
58
|
[
|
59
59
|
{
|
60
60
|
field: 'id',
|
61
|
-
width:
|
61
|
+
width: 60,
|
62
62
|
title:'序号',type: 'numbers',
|
63
63
|
},
|
64
64
|
{
|
65
65
|
field: 'name',
|
66
|
-
width:
|
66
|
+
width: 90,
|
67
67
|
title: '姓名',
|
68
68
|
templet: "#name"
|
69
69
|
},
|
70
70
|
{
|
71
71
|
field: 'school',
|
72
|
-
width:
|
72
|
+
width: 120,
|
73
73
|
title: '单位',
|
74
74
|
},
|
75
75
|
{
|
76
76
|
field: 'department',
|
77
|
-
width:
|
77
|
+
width: 120,
|
78
78
|
title: '部门'
|
79
79
|
},
|
80
80
|
{
|
81
81
|
field: 'professional_title',
|
82
82
|
title: '职称',
|
83
|
-
width:
|
83
|
+
width: 80,
|
84
84
|
templet: '#show_follow'
|
85
85
|
},
|
86
86
|
{
|
87
87
|
field: 'job',
|
88
|
-
width:
|
88
|
+
width: 80,
|
89
89
|
title: '职务',
|
90
90
|
templet: '#show_keys'
|
91
91
|
|
92
92
|
},
|
93
93
|
{
|
94
94
|
field: 'source',
|
95
|
-
width:
|
95
|
+
width: 100,
|
96
96
|
title: '来源',
|
97
97
|
},
|
98
98
|
{
|
99
99
|
field: 'attitude',
|
100
|
-
width:
|
100
|
+
width: 80,
|
101
101
|
title: '态度',
|
102
102
|
},
|
103
103
|
{
|
104
104
|
field: 'course_subjects_count',
|
105
|
-
width:
|
105
|
+
width: 90,
|
106
106
|
title: '课程方向',
|
107
107
|
templet: "#courses"
|
108
108
|
},
|
109
109
|
{
|
110
110
|
field: 'teacher_follows_count',
|
111
|
-
width:
|
111
|
+
width: 90,
|
112
112
|
title: '跟进情况',
|
113
113
|
templet: "#follow"
|
114
114
|
},
|
115
115
|
{
|
116
116
|
field: 'teacher_used',
|
117
|
-
width:
|
117
|
+
width: 110,
|
118
118
|
title: '学院渗透率',
|
119
119
|
},
|
120
120
|
{
|
121
121
|
field: 'students',
|
122
|
-
width:
|
122
|
+
width: 60,
|
123
123
|
title: '学生',
|
124
124
|
},
|
125
125
|
{
|
126
126
|
field: 'courses_count',
|
127
|
-
width:
|
127
|
+
width: 60,
|
128
128
|
title: '课堂',
|
129
129
|
templet: "#class"
|
130
130
|
},
|
131
131
|
{
|
132
132
|
field: 'activities_count',
|
133
|
-
width:
|
133
|
+
width: 100,
|
134
134
|
title: '参与活动',
|
135
135
|
templet: "#event"
|
136
136
|
},
|
@@ -41,6 +41,21 @@
|
|
41
41
|
id="invitation_at_edit" placeholder="请选择日期">
|
42
42
|
</div>
|
43
43
|
</div>
|
44
|
+
<div class="layui-inline">
|
45
|
+
<label class="layui-form-label">中标时间</label>
|
46
|
+
<div class="layui-input-inline">
|
47
|
+
<input type="text" class="layui-input" value="<%= @follow_up.bidded_date %>" name="bidded_date"
|
48
|
+
id="invitation_at_edit" placeholder="请选择日期">
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
<br>
|
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" value="<%= @follow_up.signed_date %>" name="signed_date"
|
56
|
+
id="invitation_at_edit" placeholder="请选择日期">
|
57
|
+
</div>
|
58
|
+
</div>
|
44
59
|
<div class="layui-inline">
|
45
60
|
<label class="layui-form-label">验收时间</label>
|
46
61
|
<div class="layui-input-inline">
|
@@ -0,0 +1,140 @@
|
|
1
|
+
<script type="text/html" id="toolbarDemo">
|
2
|
+
<div class="layui-btn-container">
|
3
|
+
<span class="table-label">附件信息</span>
|
4
|
+
<%# if can? :create, EducodeSales::Place %>
|
5
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="upload_file">上传文件</button>
|
6
|
+
<%# end %>
|
7
|
+
</div>
|
8
|
+
</script>
|
9
|
+
|
10
|
+
<table class="layui-hide" id="place" lay-filter="currentTableFilter"></table>
|
11
|
+
|
12
|
+
<script type="text/html" id="currentTableBar_file">
|
13
|
+
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="preview">预览</a>
|
14
|
+
<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>
|
15
|
+
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
16
|
+
</script>
|
17
|
+
|
18
|
+
<script type="text/html" id="showchance">
|
19
|
+
<a href="/missions/businesses" class="layui-table-link">{{ d.chance }}</a>
|
20
|
+
</script>
|
21
|
+
|
22
|
+
<script>
|
23
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
24
|
+
var $ = layui.jquery,
|
25
|
+
form = layui.form,
|
26
|
+
table = layui.table,
|
27
|
+
request = layui.request,
|
28
|
+
upload = layui.upload;
|
29
|
+
miniPage = layui.miniPage;
|
30
|
+
|
31
|
+
|
32
|
+
var business_id = parent.id
|
33
|
+
table.render({
|
34
|
+
elem: '#place',
|
35
|
+
url: '/missions/upload_files?business_id='+business_id,
|
36
|
+
toolbar: '#toolbarDemo',
|
37
|
+
defaultToolbar: [],
|
38
|
+
cols: [
|
39
|
+
[
|
40
|
+
{
|
41
|
+
field: 'id',
|
42
|
+
width: 80,
|
43
|
+
title:'序号',type: 'numbers',
|
44
|
+
},
|
45
|
+
{
|
46
|
+
field: 'name',
|
47
|
+
width: 500,
|
48
|
+
title: '文件名'
|
49
|
+
},
|
50
|
+
{
|
51
|
+
field: 'size',
|
52
|
+
width: 100,
|
53
|
+
title: '文件大小',
|
54
|
+
},
|
55
|
+
{
|
56
|
+
field: 'upload_time',
|
57
|
+
width: 300,
|
58
|
+
title: '上传时间'
|
59
|
+
},
|
60
|
+
{
|
61
|
+
field: 'upload_person',
|
62
|
+
width: 120,
|
63
|
+
totalRow:true,
|
64
|
+
title: '上传人',
|
65
|
+
},
|
66
|
+
{
|
67
|
+
title: '操作',
|
68
|
+
toolbar: '#currentTableBar_file',
|
69
|
+
align: "center"
|
70
|
+
}
|
71
|
+
]
|
72
|
+
],
|
73
|
+
limit: 20,
|
74
|
+
limits: [10,15,20,30,40,50,60,70,80,90],
|
75
|
+
page: true
|
76
|
+
});
|
77
|
+
|
78
|
+
|
79
|
+
table.on('toolbar(currentTableFilter)', function (obj) {
|
80
|
+
if (obj.event === 'upload_file') { //
|
81
|
+
id =parent.id
|
82
|
+
var content = miniPage.getHrefContent('/missions/businesses/upload_file');
|
83
|
+
var openWH = miniPage.getOpenWidthHeight();
|
84
|
+
import_index = layer.open({
|
85
|
+
title: '上传文件',
|
86
|
+
type: 1,
|
87
|
+
shade: 0.2,
|
88
|
+
shadeClose: true,
|
89
|
+
area: ['200px', '100px'],
|
90
|
+
offset: 'auto',
|
91
|
+
closeBtn: 0,
|
92
|
+
content: content,
|
93
|
+
});
|
94
|
+
$(window).on("resize", function () {
|
95
|
+
layer.full(index);
|
96
|
+
});
|
97
|
+
}
|
98
|
+
});
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
table.on('tool(currentTableFilter)', function (obj) {
|
103
|
+
var data = obj.data;
|
104
|
+
var id = data.id
|
105
|
+
name = data.disk_filename
|
106
|
+
if (obj.event === 'preview') {
|
107
|
+
if (data.content_type.split("/")[0] === "image"){
|
108
|
+
// var img = "<img src='/images/" + name + "' />";
|
109
|
+
layer.photos({
|
110
|
+
photos: { "data": [{"src": '/images/'+name}] }
|
111
|
+
,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机
|
112
|
+
});
|
113
|
+
}else if (data.content_type.split("/")[1] === "pdf"){
|
114
|
+
var pdf = '/images/' + name;
|
115
|
+
console.log(pdf);
|
116
|
+
var openWH = miniPage.getOpenWidthHeight();
|
117
|
+
layer.open({
|
118
|
+
title: data.name,
|
119
|
+
type: 2,
|
120
|
+
area: ['1000px', '750px'],
|
121
|
+
fixed: false, //不固定
|
122
|
+
maxmin: true,
|
123
|
+
content: pdf
|
124
|
+
});
|
125
|
+
}else{
|
126
|
+
layer.msg("附件不支持预览,请下载查看!")
|
127
|
+
}
|
128
|
+
return false;
|
129
|
+
}else if (obj.event === 'delete') {
|
130
|
+
layer.confirm('确定删除' + data.name, function (index) {
|
131
|
+
request.delete('missions/upload_files/' + data.id + '?disk_filename=' + data.disk_filename, {}, function (res) {
|
132
|
+
layer.close(index);
|
133
|
+
table.reload("place")
|
134
|
+
})
|
135
|
+
});
|
136
|
+
}
|
137
|
+
});
|
138
|
+
|
139
|
+
});
|
140
|
+
</script>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<div class="layui-inline">
|
6
6
|
<label class="layui-form-label">商机名称</label>
|
7
7
|
<div class="layui-input-inline">
|
8
|
-
<input type="text" name="name" autocomplete="off" class="layui-input">
|
8
|
+
<input type="text" name="name" autocomplete="off" class="layui-input" value="<%=params[:name] %>">
|
9
9
|
</div>
|
10
10
|
</div>
|
11
11
|
<div class="layui-inline">
|
@@ -114,9 +114,9 @@
|
|
114
114
|
elem: '#businesses_table',
|
115
115
|
url: '/missions/businesses',
|
116
116
|
where: {q: form.val('search_form')},
|
117
|
+
defaultToolbar: ['filter'],
|
117
118
|
toolbar: '#bussinessBar',
|
118
119
|
totalRow: true,//开启合并行
|
119
|
-
defaultToolbar: [],
|
120
120
|
cols: [
|
121
121
|
[
|
122
122
|
{
|
@@ -132,18 +132,18 @@
|
|
132
132
|
},
|
133
133
|
{
|
134
134
|
field: 'school',
|
135
|
-
width:
|
135
|
+
width: 150,
|
136
136
|
title: '单位',
|
137
137
|
},
|
138
138
|
{
|
139
139
|
field: 'department',
|
140
|
-
width:
|
140
|
+
width: 150,
|
141
141
|
title: '部门'
|
142
142
|
},
|
143
143
|
{
|
144
144
|
field: 'follow_ups_count',
|
145
145
|
title: '跟进',
|
146
|
-
width:
|
146
|
+
width: 60,
|
147
147
|
templet: '#show_follow',
|
148
148
|
totalRow: true,
|
149
149
|
},
|
@@ -155,12 +155,12 @@
|
|
155
155
|
// },
|
156
156
|
{
|
157
157
|
field: 'clazz',
|
158
|
-
width:
|
158
|
+
width: 80,
|
159
159
|
title: '类型'
|
160
160
|
},
|
161
161
|
{
|
162
162
|
field: 'stage',
|
163
|
-
width:
|
163
|
+
width: 90,
|
164
164
|
title: '阶段'
|
165
165
|
},
|
166
166
|
{
|
@@ -169,6 +169,18 @@
|
|
169
169
|
title: '招标时间',
|
170
170
|
sort: true
|
171
171
|
},
|
172
|
+
{
|
173
|
+
field: 'bidded_date',
|
174
|
+
width: 105,
|
175
|
+
title: '中标时间',
|
176
|
+
sort: true
|
177
|
+
},
|
178
|
+
{
|
179
|
+
field: 'signed_date',
|
180
|
+
width: 105,
|
181
|
+
title: '签单时间',
|
182
|
+
sort: true
|
183
|
+
},
|
172
184
|
{
|
173
185
|
field: 'reception_at',
|
174
186
|
width: 105,
|
@@ -191,17 +203,17 @@
|
|
191
203
|
},
|
192
204
|
{
|
193
205
|
field: 'place',
|
194
|
-
width:
|
206
|
+
width: 80,
|
195
207
|
title: '渠道'
|
196
208
|
},
|
197
209
|
{
|
198
210
|
field: 'source',
|
199
|
-
width:
|
211
|
+
width: 90,
|
200
212
|
title: '商机来源'
|
201
213
|
},
|
202
214
|
{
|
203
215
|
field: 'last_follow_person',
|
204
|
-
width:
|
216
|
+
width: 100,
|
205
217
|
title: '最新跟进人'
|
206
218
|
},
|
207
219
|
{
|
@@ -248,6 +260,12 @@
|
|
248
260
|
case 'edit':
|
249
261
|
edit(id);
|
250
262
|
break;
|
263
|
+
case 'file':
|
264
|
+
file(id, elem.data('name'));
|
265
|
+
break;
|
266
|
+
case 'time_line':
|
267
|
+
time_line(id, elem.data('name'));
|
268
|
+
break;
|
251
269
|
case 'delete':
|
252
270
|
deleteBusiness(id, elem.data('name'));
|
253
271
|
break;
|
@@ -292,6 +310,41 @@
|
|
292
310
|
layer.full(sindex);
|
293
311
|
});
|
294
312
|
}
|
313
|
+
function time_line(id,name) {
|
314
|
+
var content = miniPage.getHrefContent('/missions/businesses/time_line?business_id=' + id);
|
315
|
+
var openWH = miniPage.getOpenWidthHeight();
|
316
|
+
sindex = layer.open({
|
317
|
+
title: '商机列表/'+name+'的跟进时间线',
|
318
|
+
type: 1,
|
319
|
+
shade: 0.2,
|
320
|
+
maxmin: true,
|
321
|
+
shadeClose: true,
|
322
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
323
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
324
|
+
content: content
|
325
|
+
});
|
326
|
+
$(window).on("resize", function () {
|
327
|
+
layer.full(sindex);
|
328
|
+
});
|
329
|
+
}
|
330
|
+
function file(id, name) {
|
331
|
+
id = id
|
332
|
+
var content = miniPage.getHrefContent('/missions/businesses/file?business_id=' + id);
|
333
|
+
var openWH = miniPage.getOpenWidthHeight();
|
334
|
+
sindex = layer.open({
|
335
|
+
title: '商机列表/'+name+'的附件信息',
|
336
|
+
type: 1,
|
337
|
+
shade: 0.2,
|
338
|
+
maxmin: true,
|
339
|
+
shadeClose: true,
|
340
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
341
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
342
|
+
content: content
|
343
|
+
});
|
344
|
+
$(window).on("resize", function () {
|
345
|
+
layer.full(sindex);
|
346
|
+
});
|
347
|
+
}
|
295
348
|
|
296
349
|
function month(id) {
|
297
350
|
var content = miniPage.getHrefContent('/missions/plans/new_month?business_id=' + id);
|
@@ -533,6 +586,7 @@
|
|
533
586
|
});
|
534
587
|
} else if (obj.event === 'show_follow') {
|
535
588
|
business_id = obj.data.id
|
589
|
+
business_name = data.name
|
536
590
|
content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + id);
|
537
591
|
openWH = miniPage.getOpenWidthHeight();
|
538
592
|
index = layer.open({
|
@@ -14,6 +14,8 @@ json.data do
|
|
14
14
|
json.stage d.last_follow_up&.stage&.name
|
15
15
|
json.invitation_at d.last_follow_up&.invitation_at.to_s
|
16
16
|
json.reception_at d.last_follow_up&.reception_at.to_s
|
17
|
+
json.bidded_date d.last_follow_up&.bidded_date.to_s
|
18
|
+
json.signed_date d.last_follow_up&.signed_date.to_s
|
17
19
|
json.total_amount d.last_follow_up&.total_amount
|
18
20
|
json.return_money d.return_money
|
19
21
|
json.place d.last_follow_up&.place&.name
|
@@ -22,7 +24,7 @@ json.data do
|
|
22
24
|
json.assign_follow_ups d.last_follow_up.present? ? d.last_follow_up.assign_follow_ups.pluck(:staff_id) : []
|
23
25
|
json.current_staff_id @current_admin.id
|
24
26
|
json.staff_id d.staff_id
|
25
|
-
json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s :
|
27
|
+
json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : d.created_at.to_s
|
26
28
|
end
|
27
29
|
end
|
28
30
|
|
@@ -42,6 +42,23 @@
|
|
42
42
|
placeholder="请选择日期">
|
43
43
|
</div>
|
44
44
|
</div>
|
45
|
+
<div class="layui-inline">
|
46
|
+
<label class="layui-form-label">中标时间</label>
|
47
|
+
<div class="layui-input-inline">
|
48
|
+
<input type="text" class="layui-input" name="bidded_date" autocomplete="off" id="invitation_at_add"
|
49
|
+
value="<%= @last_follow_up&.bidded_date%>"
|
50
|
+
placeholder="请选择日期">
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
<br>
|
54
|
+
<div class="layui-inline">
|
55
|
+
<label class="layui-form-label">签单时间</label>
|
56
|
+
<div class="layui-input-inline">
|
57
|
+
<input type="text" class="layui-input" name="signed_date" autocomplete="off" id="invitation_at_add"
|
58
|
+
value="<%= @last_follow_up&.signed_date%>"
|
59
|
+
placeholder="请选择日期">
|
60
|
+
</div>
|
61
|
+
</div>
|
45
62
|
<div class="layui-inline">
|
46
63
|
<label class="layui-form-label">验收时间</label>
|
47
64
|
<div class="layui-input-inline">
|
@@ -1,6 +1,7 @@
|
|
1
1
|
<script type="text/html" id="toolbarDemo_follow">
|
2
2
|
<div class="layui-btn-container">
|
3
3
|
<span class="table-label">跟进记录</span>
|
4
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="time_line"> 时间线视图>></button>
|
4
5
|
<% if can? :add_follow, EducodeSales::Business %>
|
5
6
|
<% if @current_admin.is_admin %>
|
6
7
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加跟进记录</button>
|
@@ -11,7 +12,9 @@
|
|
11
12
|
</div>
|
12
13
|
</script>
|
13
14
|
<div class="edit-table">
|
14
|
-
<
|
15
|
+
<div class="z-index">
|
16
|
+
<table class="layui-hide" id="sale_plan_follow_table" lay-filter="sale_plan_follow_table"></table>
|
17
|
+
</div>
|
15
18
|
<table class="layui-hide" id="unfinish_table" lay-filter="unfinish_table" style="min-height: 300px;"></table>
|
16
19
|
</div>
|
17
20
|
<script type="text/html" id="currentTableBar_follow">
|
@@ -72,7 +75,7 @@
|
|
72
75
|
elem: '#sale_plan_follow_table',
|
73
76
|
url: '/missions/businesses/show_follow?id=' + parent.id ,
|
74
77
|
toolbar: '#toolbarDemo_follow',
|
75
|
-
defaultToolbar: [],
|
78
|
+
defaultToolbar: ['filter'],
|
76
79
|
cols: [
|
77
80
|
[
|
78
81
|
{
|
@@ -107,11 +110,27 @@
|
|
107
110
|
title: '关键人',
|
108
111
|
templet: '#add_keys'
|
109
112
|
},
|
113
|
+
{
|
114
|
+
field: 'money_plans_count',
|
115
|
+
width: 120,
|
116
|
+
title: '回款计划',
|
117
|
+
templet: '#edit_plan'
|
118
|
+
},
|
110
119
|
{
|
111
120
|
field: 'invitation_at',
|
112
121
|
width: 110,
|
113
122
|
title: '招标时间',
|
114
123
|
},
|
124
|
+
{
|
125
|
+
field: 'bidded_date',
|
126
|
+
width: 110,
|
127
|
+
title: '中标时间',
|
128
|
+
},
|
129
|
+
{
|
130
|
+
field: 'signed_date',
|
131
|
+
width: 110,
|
132
|
+
title: '签单时间',
|
133
|
+
},
|
115
134
|
{
|
116
135
|
field: 'reception_at',
|
117
136
|
width: 110,
|
@@ -137,12 +156,7 @@
|
|
137
156
|
width: 100,
|
138
157
|
title: '已回款',
|
139
158
|
},
|
140
|
-
|
141
|
-
field: 'money_plans_count',
|
142
|
-
width: 120,
|
143
|
-
title: '回款计划',
|
144
|
-
templet: '#edit_plan'
|
145
|
-
},
|
159
|
+
|
146
160
|
{
|
147
161
|
field: 'place',
|
148
162
|
width: 200,
|
@@ -201,6 +215,25 @@
|
|
201
215
|
$(window).on("resize", function () {
|
202
216
|
layer.full(index);
|
203
217
|
});
|
218
|
+
} else if (obj.event === 'time_line') { // 监听添加操作
|
219
|
+
layer.closeAll()
|
220
|
+
business_id = parent.business_id
|
221
|
+
business_name = parent.business_name
|
222
|
+
var content = miniPage.getHrefContent('/missions/businesses/time_line?business_id=' + id);
|
223
|
+
var openWH = miniPage.getOpenWidthHeight();
|
224
|
+
sindex = layer.open({
|
225
|
+
title: '商机列表/'+ parent.business_name +'的跟进时间线',
|
226
|
+
type: 1,
|
227
|
+
shade: 0.2,
|
228
|
+
maxmin: true,
|
229
|
+
shadeClose: true,
|
230
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
231
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
232
|
+
content: content
|
233
|
+
});
|
234
|
+
$(window).on("resize", function () {
|
235
|
+
layer.full(sindex);
|
236
|
+
});
|
204
237
|
}
|
205
238
|
});
|
206
239
|
|
@@ -219,7 +252,7 @@
|
|
219
252
|
} else if (obj.event === 'show') { // 监听添加操作
|
220
253
|
var content = miniPage.getHrefContent('/missions/businesses/show_follow_record?follow_up_id=' + data.id);
|
221
254
|
var openWH = miniPage.getOpenWidthHeight();
|
222
|
-
|
255
|
+
show_index = layer.open({
|
223
256
|
title: '查看商机跟进记录',
|
224
257
|
type: 1,
|
225
258
|
shade: 0.2,
|
@@ -495,5 +528,8 @@
|
|
495
528
|
|
496
529
|
});
|
497
530
|
</script>
|
498
|
-
|
499
|
-
|
531
|
+
<style>
|
532
|
+
.z-index .layui-table-tool{
|
533
|
+
z-index: 10000; !important;
|
534
|
+
}
|
535
|
+
</style>
|
@@ -7,6 +7,8 @@ json.data do
|
|
7
7
|
json.teachers_count d.key_people_count
|
8
8
|
json.invitation_at d.invitation_at&.to_s(:date)
|
9
9
|
json.reception_at d.reception_at&.to_s(:date)
|
10
|
+
json.bidded_date d.bidded_date&.to_s(:date)
|
11
|
+
json.signed_date d.signed_date&.to_s(:date)
|
10
12
|
json.total_amount d.total_amount
|
11
13
|
json.actual_amount d.actual_amount
|
12
14
|
json.divide_amount d.divide_amount ? d.divide_amount : ""
|