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
@@ -33,6 +33,19 @@
|
|
33
33
|
<%= @follow_up.invitation_at.to_s %>
|
34
34
|
</div>
|
35
35
|
</div>
|
36
|
+
<div class="layui-inline">
|
37
|
+
<label class="layui-form-label">中标时间:</label>
|
38
|
+
<div class="layui-input-inline">
|
39
|
+
<%= @follow_up.bidded_date.to_s %>
|
40
|
+
</div>
|
41
|
+
</div>
|
42
|
+
<br>
|
43
|
+
<div class="layui-inline">
|
44
|
+
<label class="layui-form-label">签单时间:</label>
|
45
|
+
<div class="layui-input-inline">
|
46
|
+
<%= @follow_up.signed_date.to_s %>
|
47
|
+
</div>
|
48
|
+
</div>
|
36
49
|
<div class="layui-inline">
|
37
50
|
<label class="layui-form-label">验收时间:</label>
|
38
51
|
<div class="layui-input-inline">
|
@@ -96,4 +109,69 @@
|
|
96
109
|
</div>
|
97
110
|
</div>
|
98
111
|
</div>
|
99
|
-
</form>
|
112
|
+
</form>
|
113
|
+
<div style=" text-align:center;">
|
114
|
+
<div class="layui-btn-group">
|
115
|
+
|
116
|
+
<%if @pre_id != 0 %>
|
117
|
+
<button type="button" class="layui-btn" onclick="pre_follow()">上一条</button>
|
118
|
+
<%else %>
|
119
|
+
<button type="button" class="layui-btn layui-btn-disabled layui-btn-radius">上一条</button>
|
120
|
+
<%end %>
|
121
|
+
|
122
|
+
<%if @next_id != 0 %>
|
123
|
+
<button type="button" class="layui-btn" onclick="next_follow()">下一条</button>
|
124
|
+
<%else %>
|
125
|
+
<button type="button" class="layui-btn layui-btn-disabled layui-btn-radius">下一条</button>
|
126
|
+
<%end %>
|
127
|
+
|
128
|
+
</div>
|
129
|
+
</div>
|
130
|
+
|
131
|
+
<script type="text/javascript" charset="utf-8">
|
132
|
+
|
133
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
134
|
+
var $ = layui.jquery,
|
135
|
+
form = layui.form,
|
136
|
+
table = layui.table,
|
137
|
+
request = layui.request,
|
138
|
+
miniPage = layui.miniPage;
|
139
|
+
|
140
|
+
});
|
141
|
+
function pre_follow(){
|
142
|
+
layer.close(parent.show_index)
|
143
|
+
var content = miniPage.getHrefContent('/missions/businesses/show_follow_record?follow_up_id=' + <%=@pre_id %>);
|
144
|
+
var openWH = miniPage.getOpenWidthHeight();
|
145
|
+
show_index = layer.open({
|
146
|
+
title: '查看商机跟进记录',
|
147
|
+
type: 1,
|
148
|
+
shade: 0.2,
|
149
|
+
maxmin: true,
|
150
|
+
shadeClose: true,
|
151
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
152
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
153
|
+
content: content
|
154
|
+
});
|
155
|
+
$(window).on("resize", function () {
|
156
|
+
layer.full(index);
|
157
|
+
});
|
158
|
+
}
|
159
|
+
function next_follow(){
|
160
|
+
layer.close(parent.show_index)
|
161
|
+
var content = miniPage.getHrefContent('/missions/businesses/show_follow_record?follow_up_id=' + <%=@next_id %>);
|
162
|
+
var openWH = miniPage.getOpenWidthHeight();
|
163
|
+
show_index = layer.open({
|
164
|
+
title: '查看商机跟进记录',
|
165
|
+
type: 1,
|
166
|
+
shade: 0.2,
|
167
|
+
maxmin: true,
|
168
|
+
shadeClose: true,
|
169
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
170
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
171
|
+
content: content
|
172
|
+
});
|
173
|
+
$(window).on("resize", function () {
|
174
|
+
layer.full(index);
|
175
|
+
});
|
176
|
+
}
|
177
|
+
</script>
|
@@ -0,0 +1,58 @@
|
|
1
|
+
<div class="layui-btn-container" style="padding-right: 200px;padding-top: 10px">
|
2
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" onclick="demo()" >跟进记录列表>></button>
|
3
|
+
</div>
|
4
|
+
<div style="padding: 50px">
|
5
|
+
<ul class="layui-timeline">
|
6
|
+
<%@follow_ups.each do |f| %>
|
7
|
+
<li class="layui-timeline-item">
|
8
|
+
<i class="layui-icon layui-timeline-axis"></i>
|
9
|
+
<div class="layui-timeline-content layui-text">
|
10
|
+
<h3 class="layui-timeline-title"><%=f.created_at %>---<%=f.staff.user.real_name %></h3>
|
11
|
+
<p>
|
12
|
+
最新进展:<%=f.description %>
|
13
|
+
<br>
|
14
|
+
团队建议:<%=f.advise %>
|
15
|
+
<br>
|
16
|
+
项目类型:<%=f.clazz.name %>
|
17
|
+
<br>
|
18
|
+
项目阶段:<%=f.stage.name %>
|
19
|
+
<br>
|
20
|
+
关键人:<% teacher_ids = f.key_person.present? ? f.key_person.pluck(:teacher_id) : [] %>
|
21
|
+
<%= EducodeSales::Teacher.where(id: teacher_ids).pluck(:name).join("、") %>
|
22
|
+
</p>
|
23
|
+
</div>
|
24
|
+
</li>
|
25
|
+
<%end %>
|
26
|
+
</ul>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<script type="text/javascript" charset="utf-8">
|
30
|
+
|
31
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
32
|
+
var $ = layui.jquery,
|
33
|
+
form = layui.form,
|
34
|
+
table = layui.table,
|
35
|
+
request = layui.request,
|
36
|
+
miniPage = layui.miniPage;
|
37
|
+
|
38
|
+
});
|
39
|
+
function demo(){
|
40
|
+
layer.closeAll()
|
41
|
+
business_id = parent.business_id
|
42
|
+
var content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + id);
|
43
|
+
var openWH = miniPage.getOpenWidthHeight();
|
44
|
+
sindex = layer.open({
|
45
|
+
title: '商机列表/'+ parent.business_name +'的跟进时间线',
|
46
|
+
type: 1,
|
47
|
+
shade: 0.2,
|
48
|
+
maxmin: true,
|
49
|
+
shadeClose: true,
|
50
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
51
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
52
|
+
content: content
|
53
|
+
});
|
54
|
+
$(window).on("resize", function () {
|
55
|
+
layer.full(sindex);
|
56
|
+
});
|
57
|
+
}
|
58
|
+
</script>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<div style="padding-left: 50px">
|
2
|
+
<button type="button" class="layui-btn" id="file"><i class="layui-icon"></i>选择文件</button>
|
3
|
+
</div>
|
4
|
+
<script>
|
5
|
+
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput'], function () {
|
6
|
+
var form = layui.form,
|
7
|
+
layer = layui.layer,
|
8
|
+
table = layui.table,
|
9
|
+
laytpl = layui.laytpl,
|
10
|
+
upload = layui.upload,
|
11
|
+
request = layui.request,
|
12
|
+
$ = layui.$;
|
13
|
+
selectInput = layui.selectInput;
|
14
|
+
|
15
|
+
form.render();
|
16
|
+
|
17
|
+
//指定允许上传的文件类型
|
18
|
+
var business_id = parent.id
|
19
|
+
var renderObj = upload.render({
|
20
|
+
elem: '#file'
|
21
|
+
,url: '/missions/upload_files?business_id='+business_id //此处配置你自己的上传接口即可
|
22
|
+
,accept: 'file' //普通文件
|
23
|
+
,headers: {
|
24
|
+
'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
|
25
|
+
}
|
26
|
+
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
|
27
|
+
layer.load(); //上传loading
|
28
|
+
}
|
29
|
+
,done: function(res){
|
30
|
+
layer.msg('导入成功');
|
31
|
+
table.reload('place');
|
32
|
+
layer.closeAll('loading'); //关闭loading
|
33
|
+
layer.close(parent.import_index)
|
34
|
+
}
|
35
|
+
,error: function(index, upload){
|
36
|
+
table.reload('place');
|
37
|
+
layer.closeAll('loading'); //关闭loading
|
38
|
+
layer.alert('导入失败,请检查文件格式')
|
39
|
+
layer.close(parent.import_index)
|
40
|
+
}
|
41
|
+
});
|
42
|
+
});
|
43
|
+
</script>
|
@@ -1 +1 @@
|
|
1
|
-
<div style="text-align:center;"><%= image_tag "educode_sales/
|
1
|
+
<div style="text-align:center;"><%= image_tag "educode_sales/indexLogo.png", width: "900" %></div>
|
@@ -78,33 +78,33 @@
|
|
78
78
|
url: '/missions/operation_plans?clazz=month',
|
79
79
|
toolbar: '#monthPlanToolbar',
|
80
80
|
totalRow:true,
|
81
|
-
defaultToolbar: [],
|
81
|
+
defaultToolbar: ['filter'],
|
82
82
|
cols: [
|
83
83
|
[
|
84
84
|
{
|
85
85
|
field: 'id',
|
86
|
-
width:
|
86
|
+
width: 60,
|
87
87
|
title:'序号',type: 'numbers',
|
88
88
|
totalRowText:"合计",
|
89
89
|
},
|
90
90
|
{
|
91
91
|
field: 'staff',
|
92
|
-
width:
|
92
|
+
width: 90,
|
93
93
|
title: '姓名'
|
94
94
|
},
|
95
95
|
{
|
96
96
|
field: 'teacher_name',
|
97
|
-
width:
|
97
|
+
width: 120,
|
98
98
|
title: '教师姓名',
|
99
99
|
},
|
100
100
|
{
|
101
101
|
field: 'school',
|
102
|
-
width:
|
102
|
+
width: 170,
|
103
103
|
title: '单位'
|
104
104
|
},
|
105
105
|
{
|
106
106
|
field: 'department',
|
107
|
-
width:
|
107
|
+
width: 170,
|
108
108
|
title: '部门'
|
109
109
|
},
|
110
110
|
{
|
@@ -114,7 +114,7 @@
|
|
114
114
|
},
|
115
115
|
{
|
116
116
|
field: 'count',
|
117
|
-
width:
|
117
|
+
width: 80,
|
118
118
|
title: '跟进',
|
119
119
|
totalRow:true,
|
120
120
|
templet: '#show_follow2'
|
@@ -78,19 +78,19 @@
|
|
78
78
|
elem: '#monthlyTable',
|
79
79
|
url: '/missions/operation_reports?clazz=month',
|
80
80
|
toolbar: '#monthlyToolbar',
|
81
|
-
defaultToolbar: [],
|
81
|
+
defaultToolbar: ['filter'],
|
82
82
|
totalRow:true,
|
83
83
|
cols: [
|
84
84
|
[
|
85
85
|
{
|
86
86
|
field: 'id',
|
87
|
-
width:
|
87
|
+
width: 60,
|
88
88
|
title:'序号',type: 'numbers',
|
89
89
|
totalRowText:"合计",
|
90
90
|
},
|
91
91
|
{
|
92
92
|
field: 'staff',
|
93
|
-
width:
|
93
|
+
width: 90,
|
94
94
|
title: '姓名'
|
95
95
|
},
|
96
96
|
{
|
@@ -100,7 +100,7 @@
|
|
100
100
|
},
|
101
101
|
{
|
102
102
|
field: 'finish_rate',
|
103
|
-
width:
|
103
|
+
width: 80,
|
104
104
|
title: '完成率',
|
105
105
|
totalRow:true,
|
106
106
|
},
|
@@ -117,7 +117,7 @@
|
|
117
117
|
},
|
118
118
|
{
|
119
119
|
field: 'level1_score',
|
120
|
-
width:
|
120
|
+
width: 120,
|
121
121
|
title: '大区',
|
122
122
|
templet: function (d) {
|
123
123
|
return '<div class="star1"></div>'
|
@@ -125,7 +125,7 @@
|
|
125
125
|
},
|
126
126
|
{
|
127
127
|
field: 'level2_score',
|
128
|
-
width:
|
128
|
+
width: 120,
|
129
129
|
title: '总监',
|
130
130
|
templet: function (d) {
|
131
131
|
return '<div class="star2"></div>'
|
@@ -133,7 +133,7 @@
|
|
133
133
|
},
|
134
134
|
{
|
135
135
|
field: 'level3_score',
|
136
|
-
width:
|
136
|
+
width: 120,
|
137
137
|
title: '副总',
|
138
138
|
templet: function (d) {
|
139
139
|
return '<div class="star3"></div>'
|
@@ -141,7 +141,7 @@
|
|
141
141
|
},
|
142
142
|
{
|
143
143
|
field: 'created_at',
|
144
|
-
width:
|
144
|
+
width: 200,
|
145
145
|
title: '提交时间',
|
146
146
|
},
|
147
147
|
{
|
@@ -79,33 +79,33 @@
|
|
79
79
|
url: '/missions/operation_plans?clazz=week',
|
80
80
|
toolbar: '#weekPlanToolbar',
|
81
81
|
totalRow:true,
|
82
|
-
defaultToolbar: [],
|
82
|
+
defaultToolbar: ['filter'],
|
83
83
|
cols: [
|
84
84
|
[
|
85
85
|
{
|
86
86
|
field: 'id',
|
87
|
-
width:
|
87
|
+
width: 60,
|
88
88
|
title:'序号',type: 'numbers',
|
89
89
|
totalRowText:"合计",
|
90
90
|
},
|
91
91
|
{
|
92
92
|
field: 'staff',
|
93
|
-
width:
|
93
|
+
width: 80,
|
94
94
|
title: '姓名'
|
95
95
|
},
|
96
96
|
{
|
97
97
|
field: 'teacher_name',
|
98
|
-
width:
|
98
|
+
width: 120,
|
99
99
|
title: '教师姓名',
|
100
100
|
},
|
101
101
|
{
|
102
102
|
field: 'school',
|
103
|
-
width:
|
103
|
+
width: 170,
|
104
104
|
title: '单位'
|
105
105
|
},
|
106
106
|
{
|
107
107
|
field: 'department',
|
108
|
-
width:
|
108
|
+
width: 170,
|
109
109
|
title: '部门'
|
110
110
|
},
|
111
111
|
{
|
@@ -115,7 +115,7 @@
|
|
115
115
|
},
|
116
116
|
{
|
117
117
|
field: 'week',
|
118
|
-
width:
|
118
|
+
width: 80,
|
119
119
|
title: '周次',
|
120
120
|
},
|
121
121
|
{
|
@@ -125,7 +125,7 @@
|
|
125
125
|
},
|
126
126
|
{
|
127
127
|
field: 'count',
|
128
|
-
width:
|
128
|
+
width: 80,
|
129
129
|
title: '跟进',
|
130
130
|
totalRow:true,
|
131
131
|
templet: '#show_follow1'
|
@@ -80,28 +80,28 @@
|
|
80
80
|
url: '/missions/operation_reports?clazz=week',
|
81
81
|
toolbar: '#weeklyToolbar',
|
82
82
|
totalRow:true,
|
83
|
-
defaultToolbar: [],
|
83
|
+
defaultToolbar: ['filter'],
|
84
84
|
cols: [
|
85
85
|
[
|
86
86
|
{
|
87
87
|
field: 'id',
|
88
|
-
width:
|
88
|
+
width: 60,
|
89
89
|
title:'序号',type: 'numbers',
|
90
90
|
totalRowText:"合计",
|
91
91
|
},
|
92
92
|
{
|
93
93
|
field: 'staff',
|
94
|
-
width:
|
94
|
+
width: 90,
|
95
95
|
title: '姓名'
|
96
96
|
},
|
97
97
|
{
|
98
98
|
field: 'weekly',
|
99
|
-
width:
|
99
|
+
width: 60,
|
100
100
|
title: '周次'
|
101
101
|
},
|
102
102
|
{
|
103
103
|
field: 'finish_rate',
|
104
|
-
width:
|
104
|
+
width: 80,
|
105
105
|
title: '完成率',
|
106
106
|
totalRow:true,
|
107
107
|
},
|
@@ -118,7 +118,7 @@
|
|
118
118
|
},
|
119
119
|
{
|
120
120
|
field: 'level1_score',
|
121
|
-
width:
|
121
|
+
width: 120,
|
122
122
|
title: '大区',
|
123
123
|
templet: function (d) {
|
124
124
|
return '<div class="star1"></div>'
|
@@ -126,7 +126,7 @@
|
|
126
126
|
},
|
127
127
|
{
|
128
128
|
field: 'level2_score',
|
129
|
-
width:
|
129
|
+
width: 120,
|
130
130
|
title: '总监',
|
131
131
|
templet: function (d) {
|
132
132
|
return '<div class="star2"></div>'
|
@@ -134,7 +134,7 @@
|
|
134
134
|
},
|
135
135
|
{
|
136
136
|
field: 'level3_score',
|
137
|
-
width:
|
137
|
+
width: 120,
|
138
138
|
title: '副总',
|
139
139
|
templet: function (d) {
|
140
140
|
return '<div class="star3"></div>'
|
@@ -142,7 +142,7 @@
|
|
142
142
|
},
|
143
143
|
{
|
144
144
|
field: 'created_at',
|
145
|
-
width:
|
145
|
+
width: 200,
|
146
146
|
title: '提交时间',
|
147
147
|
},
|
148
148
|
{
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<form class="layui-form " action="">
|
1
|
+
<form class="layui-form layuimini-form" action="">
|
2
2
|
<div class="layui-form-item" style="padding: 25px">
|
3
3
|
<div class="layui-inline">
|
4
|
-
<label class="layui-form-label">月份</label>
|
4
|
+
<label class="layui-form-label required">月份</label>
|
5
5
|
<div class="layui-input-inline">
|
6
6
|
<input type="text" class="layui-input" id="edit_month_plan" autocomplete="off" name="month" placeholder="请选择" value="<%=@sale_plan.month.strftime("%Y-%m") %>">
|
7
7
|
|
@@ -9,22 +9,22 @@
|
|
9
9
|
</div>
|
10
10
|
</div>
|
11
11
|
<div class="layui-inline">
|
12
|
-
<label class="layui-form-label">教师</label>
|
12
|
+
<label class="layui-form-label required">教师</label>
|
13
13
|
<div class="layui-input-inline">
|
14
14
|
<%= select_tag "teacher_id", options_for_select(@teachers, @sale_plan.teacher_id), class: 'required' %>
|
15
15
|
</div>
|
16
16
|
</div>
|
17
17
|
<div class="layui-form-item layui-form-text">
|
18
|
-
<label class="layui-form-label">计划内容</label>
|
18
|
+
<label class="layui-form-label required">计划内容</label>
|
19
19
|
<div class="layui-input-block">
|
20
|
-
<textarea name="content" placeholder="简要填写具体的营销计划,例如:
|
20
|
+
<textarea name="content" lay-verify="required" placeholder="简要填写具体的营销计划,例如:
|
21
21
|
1、推动xx老师用起来;
|
22
22
|
2、与xx老师介绍一下我们的方案;
|
23
23
|
3、与xx领导深度沟通一下,以获取到关键建设规划信息等等。" class="layui-textarea" rows="10"><%= @sale_plan.content %></textarea>
|
24
24
|
</div>
|
25
25
|
</div>
|
26
26
|
<div class="layui-inline">
|
27
|
-
<label class="layui-form-label">完成率</label>
|
27
|
+
<label class="layui-form-label required">完成率</label>
|
28
28
|
<div class="layui-input-inline">
|
29
29
|
<%= select_tag "finish_rate", options_for_select(@finish_rates, @sale_plan.finish_rate) %>
|
30
30
|
</div>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<form class="layui-form " action="">
|
1
|
+
<form class="layui-form layuimini-form" action="">
|
2
2
|
<div class="layui-form-item" style="padding: 25px">
|
3
3
|
<div class="layui-inline">
|
4
|
-
<label class="layui-form-label">月份</label>
|
4
|
+
<label class="layui-form-label required">月份</label>
|
5
5
|
<div class="layui-input-inline">
|
6
6
|
<input type="text" class="layui-input" id="edit_week_plan" autocomplete="off" name="month" placeholder="请选择" value="<%=@sale_plan.month.strftime("%Y-%m") %>">
|
7
7
|
<%#= select_tag "month", options_for_select(@months, @sale_plan.month.strftime("%Y-%m")), class: 'required' %>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
</div>
|
10
10
|
<% if @sale_plan.weekly.present? %>
|
11
11
|
<div class="layui-inline">
|
12
|
-
<label class="layui-form-label">周次</label>
|
12
|
+
<label class="layui-form-label required">周次</label>
|
13
13
|
<div class="layui-input-inline">
|
14
14
|
<%= select_tag "weekly", options_for_select(@weeks, @sale_plan.weekly), class: 'required' %>
|
15
15
|
</div>
|
@@ -17,22 +17,22 @@
|
|
17
17
|
<% end %>
|
18
18
|
|
19
19
|
<div class="layui-inline">
|
20
|
-
<label class="layui-form-label">教师</label>
|
20
|
+
<label class="layui-form-label required">教师</label>
|
21
21
|
<div class="layui-input-inline">
|
22
22
|
<%= select_tag "teacher_id", options_for_select(@teachers, @sale_plan.teacher_id), class: 'required' %>
|
23
23
|
</div>
|
24
24
|
</div>
|
25
25
|
<div class="layui-form-item layui-form-text">
|
26
|
-
<label class="layui-form-label">计划内容</label>
|
26
|
+
<label class="layui-form-label required">计划内容</label>
|
27
27
|
<div class="layui-input-block">
|
28
|
-
<textarea name="content" placeholder="简要填写具体的营销计划,例如:
|
28
|
+
<textarea name="content" lay-verify="required" placeholder="简要填写具体的营销计划,例如:
|
29
29
|
1、推动xx老师用起来;
|
30
30
|
2、与xx老师介绍一下我们的方案;
|
31
31
|
3、与xx领导深度沟通一下,以获取到关键建设规划信息等等。" class="layui-textarea" rows="10"><%= @sale_plan.content %></textarea>
|
32
32
|
</div>
|
33
33
|
</div>
|
34
34
|
<div class="layui-inline">
|
35
|
-
<label class="layui-form-label">完成率</label>
|
35
|
+
<label class="layui-form-label required">完成率</label>
|
36
36
|
<div class="layui-input-inline">
|
37
37
|
<%= select_tag "finish_rate", options_for_select(@finish_rates, @sale_plan.finish_rate) %>
|
38
38
|
</div>
|
@@ -3,15 +3,22 @@
|
|
3
3
|
<div class="layui-inline">
|
4
4
|
<label class="layui-form-label required">月份</label>
|
5
5
|
<div class="layui-input-inline">
|
6
|
-
<input type="text" class="layui-input" id="new_month_plan" autocomplete="off" name="month" placeholder="请选择">
|
6
|
+
<input type="text" lay-verify="required" class="layui-input" id="new_month_plan" autocomplete="off" name="month" placeholder="请选择">
|
7
7
|
</div>
|
8
8
|
</div>
|
9
|
+
<%if @teacher.present? %>
|
10
|
+
<div class="layui-inline">
|
11
|
+
<label class="layui-form-label required">教师</label>
|
12
|
+
<div class="layui-input-inline">
|
13
|
+
<%= select_tag "teacher_id", options_for_select(@teachers, @teacher&.id), {"lay-verify": "required", include_blank: true} %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
<%else %>
|
9
17
|
<div class="layui-inline">
|
10
18
|
<label class="layui-form-label required">教师</label>
|
11
|
-
<div class="layui-input-
|
12
|
-
<%= select_tag "teacher_id", options_for_select(@teachers, @teacher&.id), {"lay-verify": "required", include_blank: true} %>
|
13
|
-
</div>
|
19
|
+
<div class="layui-input-block" id="add_teacher" style="width: 400px"></div>
|
14
20
|
</div>
|
21
|
+
<%end %>
|
15
22
|
<div class="layui-form-item layui-form-text">
|
16
23
|
<label class="layui-form-label">计划内容</label>
|
17
24
|
<div class="layui-input-block">
|
@@ -48,6 +55,7 @@
|
|
48
55
|
</div>
|
49
56
|
|
50
57
|
<script>
|
58
|
+
flag2 = false
|
51
59
|
layui.use(['form', 'table', 'laytpl', 'request'], function () {
|
52
60
|
var form = layui.form,
|
53
61
|
layer = layui.layer,
|
@@ -55,17 +63,55 @@
|
|
55
63
|
request = layui.request,
|
56
64
|
laydate = layui.laydate,
|
57
65
|
$ = layui.$;
|
66
|
+
selectInput = layui.selectInput;
|
67
|
+
|
58
68
|
|
59
69
|
form.render();
|
60
70
|
|
71
|
+
var add_teacher = selectInput.render({
|
72
|
+
elem: '#add_teacher',
|
73
|
+
name: 'teacher_id', // 渲染的input的name值
|
74
|
+
layFilter: 'teacher_id', //同layui form参数lay-filter
|
75
|
+
layVerify: 'required', //同layui form参数lay-verify
|
76
|
+
layVerType: 'tips', // 同layui form参数lay-verType
|
77
|
+
layReqText: '请填写文本', //同layui form参数lay-ReqText
|
78
|
+
initValue: '', // 渲染初始化默认值
|
79
|
+
hasSelectIcon: false,
|
80
|
+
placeholder: '支持姓名搜索', // 渲染的inputplaceholder值
|
81
|
+
data: [],
|
82
|
+
remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
|
83
|
+
remoteMethod: function (value, cb) { // 远程搜索的回调函数
|
84
|
+
if (!value) {
|
85
|
+
return cb([]);
|
86
|
+
}
|
87
|
+
request.get('missions/search_operation_teacher?q=' + value, {}, function (res) {
|
88
|
+
return cb(res)
|
89
|
+
})
|
90
|
+
}
|
91
|
+
});
|
92
|
+
|
93
|
+
add_teacher.on('itemSelect(add_teacher)', function (obj) {
|
94
|
+
flag2 = true
|
95
|
+
teacher_id = obj.data;
|
96
|
+
var name = obj.textContent
|
97
|
+
add_teacher.setValue(name)
|
98
|
+
});
|
99
|
+
|
100
|
+
|
101
|
+
|
61
102
|
laydate.render({
|
62
103
|
elem: '#new_month_plan',
|
104
|
+
layVerify: 'required', //同layui form参数lay-verify
|
63
105
|
type: 'month'
|
64
106
|
});
|
65
107
|
|
66
108
|
var parentIndex = layer.index;
|
67
109
|
|
68
110
|
form.on('submit(add_month_plan)', function (data) {
|
111
|
+
console.log(flag2);
|
112
|
+
if(flag2){
|
113
|
+
data.field.teacher_id = teacher_id
|
114
|
+
}
|
69
115
|
request.authPost("missions/operation_plans", data.field, function (res) {
|
70
116
|
if (res.success == false) {
|
71
117
|
layer.alert(res.msg)
|
@@ -4,7 +4,14 @@
|
|
4
4
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加计划</button>
|
5
5
|
</div>
|
6
6
|
</script>
|
7
|
+
<h1 class="m-t-20 text-center">报告人员:<%=@name %></h1>
|
7
8
|
<form class="layui-form layui-form-pane" action="" style="padding-right: 20px">
|
9
|
+
<div class="layui-form-item">
|
10
|
+
<div class="layui-inline" style="margin:18px; font-weight: bold">
|
11
|
+
<label>负责区域:</label>
|
12
|
+
<span><%= @area %></span>
|
13
|
+
</div>
|
14
|
+
</div>
|
8
15
|
<div class="layui-form-item">
|
9
16
|
<div class="layui-inline" style="margin:18px; font-weight: bold">
|
10
17
|
<label>完成率:</label>
|
@@ -16,6 +23,11 @@
|
|
16
23
|
<span><%= @departments_count%></span>
|
17
24
|
<%= hidden_field_tag 'client', @departments_count, {id: 'monthly_client_hide'} %>
|
18
25
|
</div>
|
26
|
+
<div class="layui-inline" style="margin:18px; font-weight: bold">
|
27
|
+
<label style="margin-left: 100px">提交时间:</label>
|
28
|
+
<span><%= Time.now %></span>
|
29
|
+
<%= hidden_field_tag 'amount', @total_amount, {id: 'monthly_amount_hide'} %>
|
30
|
+
</div>
|
19
31
|
</div>
|
20
32
|
<div class="layui-form-item" style="margin-left: 18px">
|
21
33
|
<div class="layui-form-item layui-form-text">
|