educode_sales 0.5.6 → 0.6.0
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/256/242/346/210/267/347/256/241/347/220/206.png +0 -0
- data/app/controllers/educode_sales/businesses_controller.rb +20 -3
- data/app/controllers/educode_sales/customer_extensions_controller.rb +17 -0
- data/app/controllers/educode_sales/customer_follows_controller.rb +41 -0
- data/app/controllers/educode_sales/customers_controller.rb +194 -0
- data/app/controllers/educode_sales/follow_ups_controller.rb +11 -11
- data/app/controllers/educode_sales/home_controller.rb +9 -4
- data/app/controllers/educode_sales/roles_controller.rb +4 -1
- data/app/controllers/educode_sales/sale_trends_controller.rb +18 -7
- data/app/controllers/educode_sales/sales_controller.rb +3 -0
- data/app/controllers/educode_sales/teachers_controller.rb +12 -6
- data/app/models/educode_sales/customer.rb +4 -0
- data/app/models/educode_sales/customer_extension.rb +7 -0
- data/app/models/educode_sales/customer_follow.rb +5 -0
- data/app/models/educode_sales/permission.rb +2 -1
- data/app/models/educode_sales/role_area.rb +1 -0
- data/app/views/educode_sales/businesses/_follows.html.erb +43 -18
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +21 -2
- data/app/views/educode_sales/businesses/index.html.erb +28 -7
- data/app/views/educode_sales/businesses/index.json.jbuilder +1 -1
- data/app/views/educode_sales/businesses/new.html.erb +3 -0
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +21 -2
- data/app/views/educode_sales/businesses/show_follow.html.erb +11 -6
- data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -0
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +8 -0
- data/app/views/educode_sales/customers/edit.html.erb +60 -0
- data/app/views/educode_sales/customers/edit_department.html.erb +54 -0
- data/app/views/educode_sales/customers/edit_follow_record.html.erb +50 -0
- data/app/views/educode_sales/customers/give.html.erb +51 -0
- data/app/views/educode_sales/customers/index.html.erb +492 -0
- data/app/views/educode_sales/customers/index.json.jbuilder +25 -0
- data/app/views/educode_sales/customers/new.html.erb +89 -0
- data/app/views/educode_sales/customers/new_department.html.erb +55 -0
- data/app/views/educode_sales/customers/new_follow_record.html.erb +54 -0
- data/app/views/educode_sales/customers/show_department.json.jbuilder +13 -0
- data/app/views/educode_sales/customers/show_follow.html.erb +439 -0
- data/app/views/educode_sales/customers/show_follow.json.jbuilder +13 -0
- data/app/views/educode_sales/customers/show_follow_record.html.erb +17 -0
- data/app/views/educode_sales/follow_ups/index.json.jbuilder +1 -0
- data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +6 -0
- data/app/views/educode_sales/operation_plans/_monthly.html.erb +2 -0
- data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +6 -0
- data/app/views/educode_sales/operation_plans/_weekly.html.erb +2 -0
- data/app/views/educode_sales/places/index.json.jbuilder +1 -1
- data/app/views/educode_sales/plans/_monthPlan.html.erb +5 -0
- data/app/views/educode_sales/plans/_monthly.html.erb +1 -0
- data/app/views/educode_sales/plans/_weekPlan.html.erb +5 -0
- data/app/views/educode_sales/plans/_weekly.html.erb +1 -0
- data/app/views/educode_sales/roles/edit.html.erb +8 -0
- data/app/views/educode_sales/sales/index.html.erb +70 -19
- data/app/views/educode_sales/sales/index.json.jbuilder +38 -16
- data/app/views/educode_sales/sales/operations.html.erb +2 -1
- data/app/views/educode_sales/teachers/index.html.erb +7 -2
- data/app/views/educode_sales/teachers/index.json.jbuilder +2 -2
- data/app/views/educode_sales/teachers/show_follow.html.erb +10 -5
- data/app/views/educode_sales/teachers/show_follow.json.jbuilder +1 -0
- data/app/views/layouts/educode_sales/application.html.erb +8 -1
- data/config/routes.rb +25 -0
- data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +15 -0
- data/db/migrate/20211206054756_add_year_to_follow_ups.rb +5 -0
- data/db/migrate/20211214100803_create_customer_extensions.rb +9 -0
- data/db/migrate/20211215025029_create_educode_sales_customer_follows.rb +12 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +25 -2
@@ -4,25 +4,25 @@
|
|
4
4
|
<div class="layui-inline">
|
5
5
|
<label class="layui-form-label">所属商机</label>
|
6
6
|
<div class="layui-input-inline">
|
7
|
-
<input type="text" name="
|
7
|
+
<input type="text" name="name" autocomplete="off" class="layui-input">
|
8
8
|
</div>
|
9
9
|
</div>
|
10
10
|
<div class="layui-inline">
|
11
11
|
<label class="layui-form-label">单位</label>
|
12
12
|
<div class="layui-input-inline">
|
13
|
-
<input type="text" name="
|
13
|
+
<input type="text" name="department" autocomplete="off" class="layui-input">
|
14
14
|
</div>
|
15
15
|
</div>
|
16
16
|
<div class="layui-inline">
|
17
17
|
<label class="layui-form-label">销售人员</label>
|
18
18
|
<div class="layui-input-inline">
|
19
|
-
<%= select_tag "
|
19
|
+
<%= select_tag "staff_id", options_for_select(@staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true } %>
|
20
20
|
</div>
|
21
21
|
</div>
|
22
22
|
<div class="layui-inline">
|
23
23
|
<label class="layui-form-label">区域</label>
|
24
24
|
<div class="layui-input-inline">
|
25
|
-
<%= select_tag "
|
25
|
+
<%= select_tag "area", options_for_select(EducodeSales::Common.where(clazz: 'area').pluck(:name, :id)), { include_blank: true } %>
|
26
26
|
</div>
|
27
27
|
</div>
|
28
28
|
<div class="layui-inline">
|
@@ -80,6 +80,10 @@
|
|
80
80
|
// where: {q: form.val('search_form')},
|
81
81
|
toolbar: '#toolbarDemo_follows',
|
82
82
|
defaultToolbar: ['filter'],
|
83
|
+
initSort: {
|
84
|
+
field: 'created_at' //排序字段,对应 cols 设定的各字段名
|
85
|
+
,type: 'desc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
86
|
+
},
|
83
87
|
cols: [
|
84
88
|
[
|
85
89
|
{
|
@@ -90,27 +94,43 @@
|
|
90
94
|
{
|
91
95
|
field: 'description',
|
92
96
|
title: '最新进展',
|
97
|
+
templet:'<div><span title="{{d.description}}">{{d.description}}</span></div>'
|
93
98
|
},
|
94
99
|
{
|
95
100
|
field: 'advise',
|
96
|
-
width:
|
101
|
+
width: 120,
|
97
102
|
title: '团队建议',
|
103
|
+
templet:'<div><span title="{{d.advise}}">{{d.advise}}</span></div>'
|
98
104
|
},
|
99
105
|
{
|
100
106
|
field: 'clazz',
|
101
107
|
width: 80,
|
102
|
-
title: '类型'
|
108
|
+
title: '类型',
|
109
|
+
templet:'<div><span title="{{d.clazz}}">{{d.clazz}}</span></div>'
|
103
110
|
},
|
104
111
|
{
|
105
112
|
field: 'stage',
|
106
113
|
title: '阶段',
|
107
114
|
width: 90,
|
115
|
+
templet:'<div><span title="{{d.stage}}">{{d.stage}}</span></div>'
|
108
116
|
},
|
109
117
|
{
|
110
118
|
field: 'key_people',
|
111
119
|
width: 90,
|
112
120
|
title: '关键人',
|
113
|
-
|
121
|
+
templet:'<div><span title="{{d.key_people}}">{{d.key_people}}</span></div>'
|
122
|
+
},
|
123
|
+
{
|
124
|
+
field: 'business',
|
125
|
+
width: 120,
|
126
|
+
title: '所属商机',
|
127
|
+
templet:'#business'
|
128
|
+
},
|
129
|
+
{
|
130
|
+
field: 'school',
|
131
|
+
width: 120,
|
132
|
+
title: '单位',
|
133
|
+
templet:'<div><span title="{{d.school}}">{{d.school}}</span></div>'
|
114
134
|
},
|
115
135
|
{
|
116
136
|
field: 'staff',
|
@@ -119,15 +139,11 @@
|
|
119
139
|
},
|
120
140
|
{
|
121
141
|
field: 'created_at',
|
122
|
-
width:
|
142
|
+
width: 120,
|
123
143
|
title: '跟进时间',
|
124
144
|
sort: true,
|
125
|
-
|
126
|
-
|
127
|
-
field: 'business',
|
128
|
-
width: 150,
|
129
|
-
title: '所属商机',
|
130
|
-
templet:'#business'
|
145
|
+
templet:'<div><span title="{{d.created_at}}">{{d.created_at}}</span></div>'
|
146
|
+
|
131
147
|
},
|
132
148
|
{
|
133
149
|
title: '操作',
|
@@ -169,17 +185,26 @@
|
|
169
185
|
},
|
170
186
|
where: {q: search, sort: sort}
|
171
187
|
}, 'data');
|
188
|
+
table.reload('businesses_table', {
|
189
|
+
page: {
|
190
|
+
curr: 1
|
191
|
+
},
|
192
|
+
where: {q: search, sort: sort}
|
193
|
+
}, 'data');
|
194
|
+
form.val('search_form', {
|
195
|
+
name: data.field.name, department: data.field.department, staff_id: data.field.staff_id, area: data.field.area
|
196
|
+
})
|
172
197
|
return false;
|
173
198
|
});
|
174
199
|
|
175
200
|
form.on('submit(reset_follows_search)', function (data) {
|
176
201
|
var field = data.field;
|
177
202
|
form.val('search_follows', {
|
178
|
-
|
203
|
+
area: "",
|
179
204
|
follows_date: "",
|
180
|
-
|
181
|
-
|
182
|
-
|
205
|
+
name: "",
|
206
|
+
department: "",
|
207
|
+
staff_id: ""
|
183
208
|
})
|
184
209
|
return false;
|
185
210
|
});
|
@@ -77,7 +77,7 @@
|
|
77
77
|
</div>
|
78
78
|
</div>
|
79
79
|
<br>
|
80
|
-
<div class="layui-inline">
|
80
|
+
<div class="layui-inline place_select">
|
81
81
|
<label class="layui-form-label">渠道</label>
|
82
82
|
<div class="layui-input-inline" style="z-index: 101">
|
83
83
|
<div id="edit_place" style="width: 190px;"></div>
|
@@ -89,6 +89,15 @@
|
|
89
89
|
<input name="divide_amount" class="layui-input" value="<%= @follow_up.divide_amount%>">
|
90
90
|
</div>
|
91
91
|
</div>
|
92
|
+
<div class="layui-form-item">
|
93
|
+
<div class="layui-inline">
|
94
|
+
<label class="layui-form-label required">所属年度</label>
|
95
|
+
<div class="layui-input-inline">
|
96
|
+
<input type="text" class="layui-input" name="year" lay-verify="required" autocomplete="off" id="edit_year"
|
97
|
+
value="<%= @follow_up&.year%>"
|
98
|
+
placeholder="请选择年度"> </div>
|
99
|
+
</div>
|
100
|
+
</div>
|
92
101
|
<div class="layui-form-item">
|
93
102
|
<label class="layui-form-label">指定跟进人</label>
|
94
103
|
<div class="layui-input-inline">
|
@@ -141,6 +150,10 @@
|
|
141
150
|
laydate.render({
|
142
151
|
elem: '#invitation_at_edit'
|
143
152
|
})
|
153
|
+
laydate.render({
|
154
|
+
elem: '#edit_year',
|
155
|
+
type: 'year'
|
156
|
+
})
|
144
157
|
|
145
158
|
laydate.render({
|
146
159
|
elem: '#reception_at_edit'
|
@@ -234,6 +247,7 @@
|
|
234
247
|
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
235
248
|
parent.table.reload('sale_plan_follow_table')
|
236
249
|
parent.table.reload('businesses_table')
|
250
|
+
parent.table.reload('teachers_table')
|
237
251
|
}
|
238
252
|
})
|
239
253
|
|
@@ -242,4 +256,9 @@
|
|
242
256
|
});
|
243
257
|
|
244
258
|
});
|
245
|
-
</script>
|
259
|
+
</script>
|
260
|
+
<style>
|
261
|
+
.place_select xm-select > .xm-body{
|
262
|
+
width: 300px; !important;
|
263
|
+
}
|
264
|
+
</style>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
<div class="layui-inline">
|
24
24
|
<label class="layui-form-label">单位</label>
|
25
25
|
<div class="layui-input-inline">
|
26
|
-
<input type="text" name="department" autocomplete="off" class="layui-input">
|
26
|
+
<input type="text" name="department" autocomplete="off" value="<%=params[:school] %>" class="layui-input">
|
27
27
|
</div>
|
28
28
|
</div>
|
29
29
|
<div class="layui-inline">
|
@@ -38,7 +38,7 @@
|
|
38
38
|
<%= select_tag "business_type", options_for_select(EducodeSales::Common.where(clazz: 'business_type').pluck(:name, :id), params[:clazz_id]), { 'lay-filter': 'clazz_id', include_blank: true } %>
|
39
39
|
</div>
|
40
40
|
</div>
|
41
|
-
<div class="layui-inline
|
41
|
+
<div class="layui-inline">
|
42
42
|
<label class="layui-form-label">项目阶段</label>
|
43
43
|
<div class="layui-input-inline">
|
44
44
|
<%= select_tag "business_step", options_for_select(EducodeSales::Common.where(clazz: 'business_step').pluck(:name, :id)), { include_blank: true } %>
|
@@ -123,7 +123,7 @@
|
|
123
123
|
range: true
|
124
124
|
});
|
125
125
|
|
126
|
-
var is_show = <%=params[:name].present? || params[:clazz_id].present? %>
|
126
|
+
var is_show = <%=params[:name].present? || params[:clazz_id].present? || params[:place_id].present? || params[:school].present? %>
|
127
127
|
if(is_show){
|
128
128
|
$('.follows_li').removeClass('layui-this');
|
129
129
|
$('.follows_div').removeClass('layui-show');
|
@@ -174,6 +174,7 @@
|
|
174
174
|
})
|
175
175
|
}
|
176
176
|
})
|
177
|
+
index_place_list.setValue(gon.place)
|
177
178
|
|
178
179
|
|
179
180
|
table = layui.table;
|
@@ -195,17 +196,20 @@
|
|
195
196
|
{
|
196
197
|
field: 'name',
|
197
198
|
width: 170,
|
198
|
-
|
199
|
+
title: '名称',
|
200
|
+
templet:'<div><span title="{{d.name}}">{{d.name}}</span></div>'
|
199
201
|
},
|
200
202
|
{
|
201
203
|
field: 'school',
|
202
204
|
width: 150,
|
203
205
|
title: '单位',
|
206
|
+
templet:'<div><span title="{{d.school}}">{{d.school}}</span></div>'
|
204
207
|
},
|
205
208
|
{
|
206
209
|
field: 'department',
|
207
210
|
width: 150,
|
208
|
-
title: '部门'
|
211
|
+
title: '部门',
|
212
|
+
templet:'<div><span title="{{d.department}}">{{d.department}}</span></div>'
|
209
213
|
},
|
210
214
|
{
|
211
215
|
field: 'follow_ups_count',
|
@@ -223,7 +227,8 @@
|
|
223
227
|
{
|
224
228
|
field: 'clazz',
|
225
229
|
width: 80,
|
226
|
-
title: '类型'
|
230
|
+
title: '类型',
|
231
|
+
templet:'<div><span title="{{d.clazz}}">{{d.clazz}}</span></div>'
|
227
232
|
},
|
228
233
|
{
|
229
234
|
field: 'stage',
|
@@ -278,7 +283,7 @@
|
|
278
283
|
{
|
279
284
|
field: 'place',
|
280
285
|
width: 160,
|
281
|
-
title: '渠道'
|
286
|
+
title: '渠道',
|
282
287
|
},
|
283
288
|
{
|
284
289
|
field: 'source',
|
@@ -479,6 +484,15 @@
|
|
479
484
|
},
|
480
485
|
where: {q: search, sort: sort}
|
481
486
|
}, 'data');
|
487
|
+
table.reload('teachers_table', {
|
488
|
+
page: {
|
489
|
+
curr: 1
|
490
|
+
},
|
491
|
+
where: {q: search, sort: sort}
|
492
|
+
}, 'data');
|
493
|
+
form.val('search_follows', {
|
494
|
+
name: data.field.name, department: data.field.department, staff_id: data.field.staff_id, area: data.field.area
|
495
|
+
})
|
482
496
|
|
483
497
|
return false;
|
484
498
|
});
|
@@ -694,4 +708,11 @@
|
|
694
708
|
.layui-table-tool-temp{
|
695
709
|
padding-right: 30px; !important;
|
696
710
|
}
|
711
|
+
.layui-table-fixed .layui-table-body {
|
712
|
+
height: auto!important;
|
713
|
+
}
|
714
|
+
.layui-table-fixed.layui-hide {
|
715
|
+
display: block!important;
|
716
|
+
}
|
717
|
+
|
697
718
|
</style>
|
@@ -10,7 +10,7 @@ json.data do
|
|
10
10
|
json.follow_up_id d.last_follow_up_id
|
11
11
|
# json.teachers_count d.follow_ups.sum(:key_people_count)
|
12
12
|
# json.teachers_count EducodeSales::FollowUp.order(created_at: :desc).find_by(business_id: d.id).present? ? EducodeSales::FollowUp.order(created_at: :desc).find_by(business_id: d.id).key_people_count : 0
|
13
|
-
json.clazz d.last_follow_up&.clazz&.name
|
13
|
+
json.clazz d.last_follow_up&.clazz&.name || ""
|
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
|
@@ -10,6 +10,9 @@
|
|
10
10
|
<label class="layui-form-label required">单位部门</label>
|
11
11
|
<div class="layui-input-block" id="add_department" style="width: 300px;"></div>
|
12
12
|
</div>
|
13
|
+
<div class="layui-inline" >
|
14
|
+
<a href="/missions/customers" style=" color: #0000FF">添加单位/部门</a>
|
15
|
+
</div>
|
13
16
|
<br>
|
14
17
|
<div class="layui-inline" style="padding-top: 20px">
|
15
18
|
<label class="layui-form-label ">商机来源</label>
|
@@ -83,7 +83,7 @@
|
|
83
83
|
</div>
|
84
84
|
</div>
|
85
85
|
<br>
|
86
|
-
<div class="layui-inline">
|
86
|
+
<div class="layui-inline new_place_select">
|
87
87
|
<label class="layui-form-label">渠道</label>
|
88
88
|
<div class="layui-input-inline" style="z-index: 101">
|
89
89
|
<div id="place" style="width: 190px;"></div>
|
@@ -94,6 +94,15 @@
|
|
94
94
|
<div class="layui-input-inline">
|
95
95
|
<input name="divide_amount" class="layui-input" value="<%= @last_follow_up&.divide_amount%>">
|
96
96
|
</div>
|
97
|
+
</div>
|
98
|
+
<div class="layui-form-item">
|
99
|
+
<div class="layui-inline">
|
100
|
+
<label class="layui-form-label required">所属年度</label>
|
101
|
+
<div class="layui-input-inline">
|
102
|
+
<input type="text" class="layui-input" name="year" autocomplete="off" lay-verify="required" id="year"
|
103
|
+
value="<%= @last_follow_up&.year%>"
|
104
|
+
placeholder="请选择年度"> </div>
|
105
|
+
</div>
|
97
106
|
</div>
|
98
107
|
<div class="layui-form-item">
|
99
108
|
<label class="layui-form-label">指定跟进人</label>
|
@@ -147,6 +156,10 @@
|
|
147
156
|
xmSelect = layui.xmSelect,
|
148
157
|
$ = layui.$;
|
149
158
|
|
159
|
+
laydate.render({
|
160
|
+
elem: '#year',
|
161
|
+
type: 'year'
|
162
|
+
})
|
150
163
|
laydate.render({
|
151
164
|
elem: '#invitation_at_add'
|
152
165
|
})
|
@@ -246,6 +259,7 @@
|
|
246
259
|
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
247
260
|
parent.table.reload('sale_plan_follow_table')
|
248
261
|
parent.table.reload('businesses_table')
|
262
|
+
parent.table.reload('teachers_table')
|
249
263
|
}
|
250
264
|
})
|
251
265
|
|
@@ -254,4 +268,9 @@
|
|
254
268
|
});
|
255
269
|
|
256
270
|
});
|
257
|
-
</script>
|
271
|
+
</script>
|
272
|
+
<style>
|
273
|
+
.new_place_select xm-select > .xm-body{
|
274
|
+
width: 300px; !important;
|
275
|
+
}
|
276
|
+
</style>
|
@@ -117,6 +117,11 @@
|
|
117
117
|
title: '回款计划',
|
118
118
|
templet: '#edit_plan'
|
119
119
|
},
|
120
|
+
{
|
121
|
+
field: 'description',
|
122
|
+
width: 120,
|
123
|
+
title: '最新进展',
|
124
|
+
},
|
120
125
|
{
|
121
126
|
field: 'invitation_at',
|
122
127
|
width: 110,
|
@@ -160,7 +165,7 @@
|
|
160
165
|
|
161
166
|
{
|
162
167
|
field: 'place',
|
163
|
-
width:
|
168
|
+
width: 400,
|
164
169
|
title: '渠道',
|
165
170
|
},
|
166
171
|
{
|
@@ -248,6 +253,7 @@
|
|
248
253
|
layer.close(index);
|
249
254
|
table.reload("businesses_table");
|
250
255
|
table.reload("sale_plan_follow_table");
|
256
|
+
table.reload('teachers_table')
|
251
257
|
})
|
252
258
|
});
|
253
259
|
} else if (obj.event === 'show') { // 监听添加操作
|
@@ -342,27 +348,26 @@
|
|
342
348
|
[
|
343
349
|
{
|
344
350
|
field: 'id',
|
345
|
-
width:
|
351
|
+
width: 60,
|
346
352
|
title:'序号',type: 'numbers',
|
347
353
|
},
|
348
354
|
{
|
349
355
|
field: 'staff',
|
350
|
-
width:
|
356
|
+
width: 100,
|
351
357
|
title: '姓名'
|
352
358
|
},
|
353
359
|
{
|
354
360
|
field: 'month',
|
355
|
-
width:
|
361
|
+
width: 100,
|
356
362
|
title: '月份',
|
357
363
|
},
|
358
364
|
{
|
359
365
|
field: 'weekly',
|
360
|
-
width:
|
366
|
+
width: 100,
|
361
367
|
title: '周次'
|
362
368
|
},
|
363
369
|
{
|
364
370
|
field: 'content',
|
365
|
-
width: 300,
|
366
371
|
title: '计划内容'
|
367
372
|
},
|
368
373
|
{
|
@@ -78,6 +78,14 @@
|
|
78
78
|
<%= @follow_up.divide_amount %>万
|
79
79
|
</div>
|
80
80
|
</div>
|
81
|
+
<div class="layui-form-item">
|
82
|
+
<div class="layui-inline">
|
83
|
+
<label class="layui-form-label">所属年度</label>
|
84
|
+
<div class="layui-input-inline">
|
85
|
+
<%= @follow_up&.year %>年
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
</div>
|
81
89
|
<div class="ayui-form-item">
|
82
90
|
<label class="layui-form-label" style="width: 85px;">指定跟进人:</label>
|
83
91
|
<div class="layui-input-inline">
|
@@ -0,0 +1,60 @@
|
|
1
|
+
<%#= Gon::Base.render_data %>
|
2
|
+
<form class="layui-form " action="">
|
3
|
+
<div class="layui-form-item" style="padding: 25px">
|
4
|
+
<div class="layui-form-item">
|
5
|
+
<label class="layui-form-label required">负责区域</label>
|
6
|
+
<div class="layui-input-block">
|
7
|
+
<div id="area_edit" class="demo-transfer"></div>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<div class="layui-inline" style="padding-left: 30px">
|
11
|
+
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="submits">提交
|
12
|
+
</button>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</form>
|
16
|
+
|
17
|
+
|
18
|
+
<script>
|
19
|
+
|
20
|
+
layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput', 'transfer'], function () {
|
21
|
+
var form = layui.form,
|
22
|
+
layer = layui.layer,
|
23
|
+
table = layui.table,
|
24
|
+
transfer = layui.transfer,
|
25
|
+
laytpl = layui.laytpl,
|
26
|
+
request = layui.request,
|
27
|
+
$ = layui.$;
|
28
|
+
|
29
|
+
form.render();
|
30
|
+
|
31
|
+
// 当前弹出层,防止ID被覆盖
|
32
|
+
var parentIndex = layer.index;
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
//监听提交
|
38
|
+
form.on('submit(submits)', function (data) {
|
39
|
+
|
40
|
+
var area_ids = []
|
41
|
+
layui.each(transfer.getData('area_list'), function (i, v) {
|
42
|
+
area_ids.push(v.value)
|
43
|
+
})
|
44
|
+
if (area_ids.length == 0) {
|
45
|
+
layer.alert("请选择负责区域");
|
46
|
+
return false;
|
47
|
+
}
|
48
|
+
data.field['area_ids'] = area_ids;
|
49
|
+
request.authPut("missions/places/" + data.field.id, data.field, function (res) {
|
50
|
+
if (res.success == false) {
|
51
|
+
layer.alert(res.msg)
|
52
|
+
} else {
|
53
|
+
layer.closeAll();
|
54
|
+
table.reload('place')
|
55
|
+
}
|
56
|
+
})
|
57
|
+
return false;
|
58
|
+
});
|
59
|
+
});
|
60
|
+
</script>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<div class="layuimini-main">
|
2
|
+
<form class="layui-form layuimini-form" action="">
|
3
|
+
<div class="layui-form-item" style="padding: 25px">
|
4
|
+
<div class="layui-form-item" style="padding: 25px">
|
5
|
+
<div class="layui-inline">
|
6
|
+
<label class="layui-form-label required">部门名称</label>
|
7
|
+
<div class="layui-input-block" style="width: 300px;">
|
8
|
+
<input type="text" name="department_name" required lay-verify="required" autocomplete="off" placeholder="请输入"
|
9
|
+
class="layui-input" id="inputFocus" value="<%=@department.name %>">
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
<div class="layui-form-item" style="padding-left: 130px">
|
14
|
+
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-edit">提交
|
15
|
+
</button>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</form>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<script>
|
22
|
+
|
23
|
+
layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput', 'transfer'], function () {
|
24
|
+
var form = layui.form,
|
25
|
+
layer = layui.layer,
|
26
|
+
table = layui.table,
|
27
|
+
transfer = layui.transfer,
|
28
|
+
laytpl = layui.laytpl,
|
29
|
+
request = layui.request,
|
30
|
+
laydate = layui.laydate,
|
31
|
+
$ = layui.$;
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
form.render();
|
36
|
+
|
37
|
+
// 当前弹出层,防止ID被覆盖
|
38
|
+
var parentIndex = layer.index;
|
39
|
+
|
40
|
+
|
41
|
+
//监听提交
|
42
|
+
form.on('submit(data-edit)', function (data) {
|
43
|
+
request.authPut("missions/customers/"+ parent.department_id +"/update_department", data.field, function (res) {
|
44
|
+
if (res.success === false) {
|
45
|
+
layer.alert(res.msg)
|
46
|
+
} else {
|
47
|
+
layer.close(parent.edit_index1);
|
48
|
+
table.reload('sale_plan_follow_table')
|
49
|
+
}
|
50
|
+
})
|
51
|
+
return false;
|
52
|
+
});
|
53
|
+
});
|
54
|
+
</script>
|
@@ -0,0 +1,50 @@
|
|
1
|
+
<h1 class="text-center" style="padding: 25px"><%=@school.name %></h1>
|
2
|
+
<form class="layui-form layuimini-form " action="">
|
3
|
+
<div class="layui-form-item layui-form-text" style="padding-right: 30px">
|
4
|
+
<label class="layui-form-label required">跟进内容</label>
|
5
|
+
<div class="layui-input-block">
|
6
|
+
<textarea name="content" placeholder="请输入跟进内容" lay-verify="required" style="height: 200px" class="layui-textarea" ><%=@follow_up.content %></textarea>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
<div class="layui-form-item ">
|
10
|
+
<label class="layui-form-label">跟进部门</label>
|
11
|
+
<div class="layui-input-inline" style="width: 300px;">
|
12
|
+
<%= select_tag "department_id",options_for_select(@school.departments.pluck(:name, :id),@follow_up.department_id)%>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
<div class="layui-form-item " style="padding-left: 110px">
|
16
|
+
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit_follow_up">提交
|
17
|
+
</button>
|
18
|
+
</div>
|
19
|
+
</form>
|
20
|
+
<script>
|
21
|
+
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'laydate'], function () {
|
22
|
+
var form = layui.form,
|
23
|
+
layer = layui.layer,
|
24
|
+
table = layui.table,
|
25
|
+
laytpl = layui.laytpl,
|
26
|
+
request = layui.request,
|
27
|
+
laydate = layui.laydate,
|
28
|
+
$ = layui.$;
|
29
|
+
|
30
|
+
|
31
|
+
form.render();
|
32
|
+
|
33
|
+
form.on('submit(edit_follow_up)', function (data) {
|
34
|
+
request.authPut("missions/customer_follows/<%= @follow_up.id%>", data.field, function (res) {
|
35
|
+
if (res.success == false) {
|
36
|
+
layer.alert(res.msg)
|
37
|
+
} else {
|
38
|
+
layer.close(parent.editFollowIndex);
|
39
|
+
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
40
|
+
parent.table.reload('customers_table')
|
41
|
+
parent.table.reload('unfinish_table')
|
42
|
+
}
|
43
|
+
})
|
44
|
+
|
45
|
+
|
46
|
+
return false;
|
47
|
+
});
|
48
|
+
|
49
|
+
});
|
50
|
+
</script>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<%= Gon::Base.render_data %>
|
2
|
+
<form class="layui-form " action="">
|
3
|
+
<div class="layui-form-item" style="padding: 25px">
|
4
|
+
<div class="layui-inline">
|
5
|
+
<label class="layui-form-label required">负责人</label>
|
6
|
+
<div class="layui-input-block">
|
7
|
+
<%= select_tag "staff_id", options_for_select(@staffs), { include_blank: true } %>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<div class="layui-inline" style="padding-left: 30px">
|
11
|
+
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交
|
12
|
+
</button>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</form>
|
16
|
+
|
17
|
+
|
18
|
+
<script>
|
19
|
+
layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput', 'transfer'], function () {
|
20
|
+
var form = layui.form,
|
21
|
+
layer = layui.layer,
|
22
|
+
table = layui.table,
|
23
|
+
transfer = layui.transfer,
|
24
|
+
laytpl = layui.laytpl,
|
25
|
+
request = layui.request,
|
26
|
+
$ = layui.$;
|
27
|
+
|
28
|
+
form.render();
|
29
|
+
|
30
|
+
// 当前弹出层,防止ID被覆盖
|
31
|
+
var parentIndex = layer.index;
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
//监听提交
|
36
|
+
form.on('submit(data-reset-btn)', function (data) {
|
37
|
+
var school_ids = parent.ids
|
38
|
+
data.field['school_ids'] = school_ids;
|
39
|
+
console.log(data.field);
|
40
|
+
request.authPost("missions/customer_extensions", data.field, function (res) {
|
41
|
+
if (res.success === false) {
|
42
|
+
layer.alert(res.msg)
|
43
|
+
} else {
|
44
|
+
layer.closeAll(); //关闭所有层
|
45
|
+
table.reload('customers_table')
|
46
|
+
}
|
47
|
+
})
|
48
|
+
return false;
|
49
|
+
});
|
50
|
+
});
|
51
|
+
</script>
|