educode_sales 0.4.7 → 0.5.1
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//345/233/236/346/224/266/347/253/231.png +0 -0
- data/app/controllers/educode_sales/businesses_controller.rb +81 -5
- data/app/controllers/educode_sales/follow_ups_controller.rb +2 -2
- data/app/controllers/educode_sales/home_controller.rb +1 -1
- data/app/controllers/educode_sales/operation_plans_controller.rb +12 -4
- data/app/controllers/educode_sales/operations_controller.rb +1 -1
- data/app/controllers/educode_sales/plans_controller.rb +26 -18
- data/app/controllers/educode_sales/recycles_controller.rb +95 -0
- data/app/controllers/educode_sales/sale_reports_controller.rb +1 -1
- data/app/controllers/educode_sales/sale_trends_controller.rb +6 -6
- data/app/controllers/educode_sales/sales_controller.rb +2 -2
- data/app/controllers/educode_sales/staffs_controller.rb +4 -4
- data/app/controllers/educode_sales/upload_files_controller.rb +105 -0
- data/app/models/concerns/deletable.rb +8 -0
- data/app/models/educode_sales/application_record.rb +2 -0
- data/app/models/educode_sales/business.rb +15 -2
- data/app/models/educode_sales/common.rb +4 -0
- data/app/models/educode_sales/follow_up.rb +4 -2
- data/app/models/educode_sales/recycle.rb +5 -0
- data/app/models/educode_sales/sale_plan.rb +4 -0
- data/app/models/educode_sales/sale_report.rb +2 -0
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +15 -0
- data/app/views/educode_sales/businesses/edit_plan.html.erb +2 -2
- data/app/views/educode_sales/businesses/file.html.erb +154 -0
- data/app/views/educode_sales/businesses/index.html.erb +65 -3
- data/app/views/educode_sales/businesses/index.json.jbuilder +3 -1
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +22 -1
- data/app/views/educode_sales/businesses/show_follow.html.erb +54 -12
- data/app/views/educode_sales/businesses/show_follow.json.jbuilder +3 -0
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +80 -2
- data/app/views/educode_sales/businesses/time_line.html.erb +62 -0
- data/app/views/educode_sales/businesses/upload_file.html.erb +43 -0
- data/app/views/educode_sales/operation_plans/_monthly.html.erb +4 -4
- data/app/views/educode_sales/operation_plans/_weekly.html.erb +4 -4
- 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 +17 -2
- data/app/views/educode_sales/operation_plans/new_week.html.erb +21 -6
- data/app/views/educode_sales/operation_reports/audit.html.erb +20 -14
- data/app/views/educode_sales/operation_reports/edit.html.erb +11 -11
- data/app/views/educode_sales/operation_reports/show.html.erb +20 -14
- data/app/views/educode_sales/plans/_monthly.html.erb +4 -4
- data/app/views/educode_sales/plans/_weekly.html.erb +4 -4
- data/app/views/educode_sales/plans/edit_month.html.erb +6 -6
- data/app/views/educode_sales/plans/edit_week.html.erb +7 -7
- data/app/views/educode_sales/plans/new_month.html.erb +1 -1
- data/app/views/educode_sales/plans/new_monthly.html.erb +6 -6
- data/app/views/educode_sales/plans/new_week.html.erb +2 -2
- data/app/views/educode_sales/plans/new_weekly.html.erb +7 -7
- data/app/views/educode_sales/recycles/_business.html.erb +122 -0
- data/app/views/educode_sales/recycles/_monthPlan.html.erb +123 -0
- data/app/views/educode_sales/recycles/_monthly.html.erb +121 -0
- data/app/views/educode_sales/recycles/_weekPlan.html.erb +128 -0
- data/app/views/educode_sales/recycles/_weekly.html.erb +122 -0
- data/app/views/educode_sales/recycles/business.json.jbuilder +16 -0
- data/app/views/educode_sales/recycles/index.html.erb +58 -0
- data/app/views/educode_sales/recycles/monthPlan.json.jbuilder +16 -0
- data/app/views/educode_sales/recycles/monthly.json.jbuilder +15 -0
- data/app/views/educode_sales/recycles/weekPlan.json.jbuilder +16 -0
- data/app/views/educode_sales/recycles/weekly.json.jbuilder +15 -0
- data/app/views/educode_sales/sale_reports/audit.html.erb +21 -12
- data/app/views/educode_sales/sale_reports/edit.html.erb +9 -9
- data/app/views/educode_sales/sale_reports/show.html.erb +12 -6
- data/app/views/educode_sales/sale_trends/trends.html.erb +6 -6
- data/app/views/educode_sales/teachers/add_keys.html.erb +2 -2
- data/app/views/educode_sales/teachers/index.html.erb +1 -1
- data/app/views/educode_sales/teachers/show_follow.html.erb +9 -3
- data/app/views/educode_sales/upload_files/index.json.jbuilder +13 -0
- data/app/views/layouts/educode_sales/application.html.erb +3 -0
- data/config/routes.rb +27 -0
- data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +6 -0
- data/db/migrate/20211102085743_add_bidded_date_educode_sales_follow_ups.rb +6 -0
- data/db/migrate/20211109015617_create_educode_sales_recycles.rb +25 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +24 -2
@@ -1,6 +1,6 @@
|
|
1
1
|
<h1 class="text-center m-t-20"><%= @follow_up.business.name %></h1>
|
2
2
|
<form class="layui-form form-value">
|
3
|
-
<div class="layui-form-item" style="padding: 25px">
|
3
|
+
<div class="layui-form-item" style="padding: 10px 25px 0;">
|
4
4
|
<div class="layui-inline">
|
5
5
|
<label class="layui-form-label">单位:</label>
|
6
6
|
<div class="layui-input-inline">
|
@@ -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,62 @@
|
|
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
|
+
<%if @follow_ups.present? %>
|
7
|
+
<%@follow_ups.each do |f| %>
|
8
|
+
<li class="layui-timeline-item">
|
9
|
+
<i class="layui-icon layui-timeline-axis"></i>
|
10
|
+
<div class="layui-timeline-content layui-text">
|
11
|
+
<h3 class="layui-timeline-title"><%=f.created_at %>---<%=f.staff.user.real_name %></h3>
|
12
|
+
<p>
|
13
|
+
最新进展:<%=f.description %>
|
14
|
+
<br>
|
15
|
+
团队建议:<%=f.advise %>
|
16
|
+
<br>
|
17
|
+
项目类型:<%=f.clazz.name %>
|
18
|
+
<br>
|
19
|
+
项目阶段:<%=f.stage.name %>
|
20
|
+
<br>
|
21
|
+
关键人:<% teacher_ids = f.key_person.present? ? f.key_person.pluck(:teacher_id) : [] %>
|
22
|
+
<%= EducodeSales::Teacher.where(id: teacher_ids).pluck(:name).join("、") %>
|
23
|
+
</p>
|
24
|
+
</div>
|
25
|
+
</li>
|
26
|
+
<%end %>
|
27
|
+
<%else %>
|
28
|
+
<h1 class="layui-timeline-title" style="text-align: center">暂无跟进记录</h1>
|
29
|
+
<%end %>
|
30
|
+
</ul>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<script type="text/javascript" charset="utf-8">
|
34
|
+
|
35
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
|
36
|
+
var $ = layui.jquery,
|
37
|
+
form = layui.form,
|
38
|
+
table = layui.table,
|
39
|
+
request = layui.request,
|
40
|
+
miniPage = layui.miniPage;
|
41
|
+
|
42
|
+
});
|
43
|
+
function demo(){
|
44
|
+
layer.closeAll()
|
45
|
+
business_id = parent.business_id
|
46
|
+
var content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + id);
|
47
|
+
var openWH = miniPage.getOpenWidthHeight();
|
48
|
+
sindex = layer.open({
|
49
|
+
title: '商机列表/'+ parent.business_name +'的跟进记录',
|
50
|
+
type: 1,
|
51
|
+
shade: 0.2,
|
52
|
+
maxmin: true,
|
53
|
+
shadeClose: true,
|
54
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
55
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
56
|
+
content: content
|
57
|
+
});
|
58
|
+
$(window).on("resize", function () {
|
59
|
+
layer.full(sindex);
|
60
|
+
});
|
61
|
+
}
|
62
|
+
</script>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<div style="padding-left: 50px">
|
2
|
+
<button type="button" class="layui-btn" id="get_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: '#get_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('file');
|
32
|
+
layer.closeAll('loading'); //关闭loading
|
33
|
+
layer.close(parent.import_index)
|
34
|
+
}
|
35
|
+
,error: function(index, upload){
|
36
|
+
table.reload('file');
|
37
|
+
layer.closeAll('loading'); //关闭loading
|
38
|
+
layer.alert('导入失败,请检查文件格式')
|
39
|
+
layer.close(parent.import_index)
|
40
|
+
}
|
41
|
+
});
|
42
|
+
});
|
43
|
+
</script>
|
@@ -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
|
{
|
@@ -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,13 +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
19
|
<div class="layui-input-block" id="add_teacher" style="width: 400px"></div>
|
12
20
|
</div>
|
21
|
+
<%end %>
|
13
22
|
<div class="layui-form-item layui-form-text">
|
14
23
|
<label class="layui-form-label">计划内容</label>
|
15
24
|
<div class="layui-input-block">
|
@@ -46,6 +55,7 @@
|
|
46
55
|
</div>
|
47
56
|
|
48
57
|
<script>
|
58
|
+
flag2 = false
|
49
59
|
layui.use(['form', 'table', 'laytpl', 'request'], function () {
|
50
60
|
var form = layui.form,
|
51
61
|
layer = layui.layer,
|
@@ -81,6 +91,7 @@
|
|
81
91
|
});
|
82
92
|
|
83
93
|
add_teacher.on('itemSelect(add_teacher)', function (obj) {
|
94
|
+
flag2 = true
|
84
95
|
teacher_id = obj.data;
|
85
96
|
var name = obj.textContent
|
86
97
|
add_teacher.setValue(name)
|
@@ -90,13 +101,17 @@
|
|
90
101
|
|
91
102
|
laydate.render({
|
92
103
|
elem: '#new_month_plan',
|
104
|
+
layVerify: 'required', //同layui form参数lay-verify
|
93
105
|
type: 'month'
|
94
106
|
});
|
95
107
|
|
96
108
|
var parentIndex = layer.index;
|
97
109
|
|
98
110
|
form.on('submit(add_month_plan)', function (data) {
|
99
|
-
|
111
|
+
console.log(flag2);
|
112
|
+
if(flag2){
|
113
|
+
data.field.teacher_id = teacher_id
|
114
|
+
}
|
100
115
|
request.authPost("missions/operation_plans", data.field, function (res) {
|
101
116
|
if (res.success == false) {
|
102
117
|
layer.alert(res.msg)
|
@@ -3,19 +3,28 @@
|
|
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_week_plan" autocomplete="off" name="month" placeholder="请选择">
|
6
|
+
<input type="text" lay-verify="required" class="layui-input" id="new_week_plan" autocomplete="off" name="month" placeholder="请选择">
|
7
7
|
</div>
|
8
8
|
</div>
|
9
9
|
<div class="layui-inline">
|
10
10
|
<label class="layui-form-label required">周次</label>
|
11
11
|
<div class="layui-input-inline">
|
12
|
-
<%= select_tag "weekly", options_for_select(@weeks), class: 'required' %>
|
12
|
+
<%= select_tag "weekly", options_for_select(@weeks,@week), class: 'required' %>
|
13
13
|
</div>
|
14
14
|
</div>
|
15
|
-
|
15
|
+
<%if @teacher.present? %>
|
16
|
+
<div class="layui-inline">
|
16
17
|
<label class="layui-form-label required">教师</label>
|
17
|
-
<div class="layui-input-
|
18
|
-
|
18
|
+
<div class="layui-input-inline">
|
19
|
+
<%= select_tag "teacher_id", options_for_select(@teachers, @teacher&.id), {"lay-verify": "required", include_blank: true} %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<%else %>
|
23
|
+
<div class="layui-inline">
|
24
|
+
<label class="layui-form-label required">教师</label>
|
25
|
+
<div class="layui-input-block" id="add_teacher" style="width: 400px"></div>
|
26
|
+
</div>
|
27
|
+
<%end %>
|
19
28
|
<div class="layui-form-item layui-form-text">
|
20
29
|
<label class="layui-form-label required">计划内容</label>
|
21
30
|
<div class="layui-input-block">
|
@@ -52,6 +61,7 @@
|
|
52
61
|
</div>
|
53
62
|
|
54
63
|
<script>
|
64
|
+
flag = false
|
55
65
|
layui.use(['form', 'table', 'laytpl', 'request'], function () {
|
56
66
|
var form = layui.form,
|
57
67
|
layer = layui.layer,
|
@@ -86,6 +96,7 @@
|
|
86
96
|
});
|
87
97
|
|
88
98
|
add_teacher.on('itemSelect(add_teacher)', function (obj) {
|
99
|
+
flag = true
|
89
100
|
teacher_id = obj.data;
|
90
101
|
var name = obj.textContent
|
91
102
|
add_teacher.setValue(name)
|
@@ -99,7 +110,11 @@
|
|
99
110
|
|
100
111
|
|
101
112
|
form.on('submit(add_week_plan)', function (data) {
|
102
|
-
|
113
|
+
console.log(flag);
|
114
|
+
if (flag){
|
115
|
+
data.field.teacher_id = teacher_id
|
116
|
+
}
|
117
|
+
console.log(data.field.teacher_id);
|
103
118
|
request.authPost("missions/operation_plans", data.field, function (res) {
|
104
119
|
if (res.success == false) {
|
105
120
|
layer.alert(res.msg)
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<h1 class="m-t-20 text-center">报告人员:<%=@name %></h1>
|
2
2
|
<form class="layui-form layui-form-pane" action="" style="padding-right: 20px">
|
3
|
-
<div class="layui-form-item">
|
3
|
+
<div class="layui-form-item" style="margin-bottom: 0">
|
4
4
|
<div class="layui-inline" style="margin:18px; font-weight: bold">
|
5
5
|
<label>负责区域:</label>
|
6
6
|
<span><%= @area%></span>
|
7
7
|
</div>
|
8
8
|
</div>
|
9
|
-
<div class="layui-form-item">
|
9
|
+
<div class="layui-form-item" style="margin-bottom: 0">
|
10
10
|
<div class="layui-inline" style="margin:18px; font-weight: bold">
|
11
11
|
<label>完成率:</label>
|
12
12
|
<span><%= @sale_report.finish_rate %>%</span>
|
@@ -32,7 +32,8 @@
|
|
32
32
|
3、补充说明需要上级解决的问题和挑战。" disabled class="layui-textarea autosize"><%= @sale_report.content %></textarea>
|
33
33
|
</div>
|
34
34
|
</div>
|
35
|
-
|
35
|
+
<% if can? :level1_audit, EducodeSales::OperationReport %>
|
36
|
+
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
36
37
|
<label class="layui-form-label">大区意见</label>
|
37
38
|
<div class="layui-input-block">
|
38
39
|
<textarea name="level1_opinion" placeholder="给出评价、提醒、建议、办法等。"
|
@@ -40,7 +41,9 @@
|
|
40
41
|
</div>
|
41
42
|
</div>
|
42
43
|
<div id="weekStar4" style="margin-bottom: 40px"></div>
|
43
|
-
|
44
|
+
<%end %>
|
45
|
+
<% if can? :level2_audit, EducodeSales::OperationReport %>
|
46
|
+
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
44
47
|
<label class="layui-form-label">总监意见</label>
|
45
48
|
<div class="layui-input-block">
|
46
49
|
<textarea name="level2_opinion" placeholder="给出评价、提醒、建议、办法等。"
|
@@ -48,7 +51,9 @@
|
|
48
51
|
</div>
|
49
52
|
</div>
|
50
53
|
<div id="weekStar5" style="margin-bottom: 40px"></div>
|
51
|
-
|
54
|
+
<%end %>
|
55
|
+
<% if can? :level3_audit, EducodeSales::OperationReport %>
|
56
|
+
<div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
|
52
57
|
<label class="layui-form-label">副总意见</label>
|
53
58
|
<div class="layui-input-block">
|
54
59
|
<textarea name="level3_opinion" placeholder="给出评价、提醒、建议、办法等。"
|
@@ -56,6 +61,7 @@
|
|
56
61
|
</div>
|
57
62
|
</div>
|
58
63
|
<div id="weekStar6" style="margin-bottom: 40px"></div>
|
64
|
+
<%end %>
|
59
65
|
<br>
|
60
66
|
<div class="layui-inline m-t-10">
|
61
67
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="audit_weekly_report"
|
@@ -165,32 +171,32 @@
|
|
165
171
|
cols: [
|
166
172
|
[{
|
167
173
|
field: 'id',
|
168
|
-
width:
|
174
|
+
width: 60,
|
169
175
|
title:'序号',type: 'numbers',
|
170
176
|
},
|
171
177
|
{
|
172
178
|
field: 'staff',
|
173
|
-
width:
|
179
|
+
width: 80,
|
174
180
|
title: '姓名'
|
175
181
|
},
|
176
182
|
{
|
177
183
|
field: 'teacher_name',
|
178
|
-
width:
|
184
|
+
width: 120,
|
179
185
|
title: '教师姓名',
|
180
186
|
},
|
181
187
|
{
|
182
188
|
field: 'school',
|
183
|
-
width:
|
189
|
+
width: 170,
|
184
190
|
title: '单位'
|
185
191
|
},
|
186
192
|
{
|
187
193
|
field: 'department',
|
188
|
-
width:
|
194
|
+
width: 170,
|
189
195
|
title: '部门'
|
190
196
|
},
|
191
197
|
{
|
192
198
|
field: 'week',
|
193
|
-
width:
|
199
|
+
width: 80,
|
194
200
|
title: '周次',
|
195
201
|
},
|
196
202
|
{
|
@@ -200,18 +206,18 @@
|
|
200
206
|
},
|
201
207
|
{
|
202
208
|
field: 'count',
|
203
|
-
width:
|
209
|
+
width: 80,
|
204
210
|
title: '跟进',
|
205
211
|
templet: '#show_follow_audit'
|
206
212
|
},
|
207
213
|
{
|
208
214
|
field: 'rate',
|
209
|
-
width:
|
215
|
+
width: 80,
|
210
216
|
title: '完成率',
|
211
217
|
},
|
212
218
|
{
|
213
219
|
field: 'updated_at',
|
214
|
-
width:
|
220
|
+
width: 170,
|
215
221
|
title: '更新时间',
|
216
222
|
sort: true,
|
217
223
|
},
|