educode_sales 0.9.73 → 0.9.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/educode_sales/contracts_controller.rb +309 -0
- data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
- data/app/controllers/educode_sales/home_controller.rb +7 -0
- data/app/controllers/educode_sales/ideas_controller.rb +146 -76
- data/app/controllers/educode_sales/roles_controller.rb +2 -1
- data/app/controllers/educode_sales/upload_files_controller.rb +3 -0
- data/app/models/educode_sales/assign_staff.rb +6 -0
- data/app/models/educode_sales/contract_date_list.rb +6 -0
- data/app/models/educode_sales/follow_up.rb +6 -0
- data/app/models/educode_sales/idea.rb +16 -5
- data/app/models/educode_sales/idea_follow.rb +11 -0
- data/app/models/educode_sales/permission.rb +2 -1
- data/app/models/educode_sales/role_area.rb +2 -1
- data/app/views/educode_sales/businesses/_contract_list.html.erb +160 -0
- data/app/views/educode_sales/contracts/_follows.html.erb +323 -0
- data/app/views/educode_sales/contracts/_list.html.erb +596 -0
- data/app/views/educode_sales/contracts/follow_ups.json.jbuilder +23 -0
- data/app/views/educode_sales/contracts/index.html.erb +50 -0
- data/app/views/educode_sales/contracts/index.json.jbuilder +74 -0
- data/app/views/educode_sales/contracts/list.js.erb +1 -0
- data/app/views/educode_sales/contracts/new_follow_up.html.erb +671 -0
- data/app/views/educode_sales/home/staff_business.json.jbuilder +9 -0
- data/app/views/educode_sales/idea_recycles/detail.html.erb +4 -4
- data/app/views/educode_sales/idea_recycles/index.html.erb +5 -5
- data/app/views/educode_sales/ideas/_follows.html.erb +258 -0
- data/app/views/educode_sales/ideas/_index.html.erb +544 -0
- data/app/views/educode_sales/ideas/detail.html.erb +7 -7
- data/app/views/educode_sales/ideas/edit.html.erb +77 -15
- data/app/views/educode_sales/ideas/files.html.erb +157 -0
- data/app/views/educode_sales/ideas/files.json.jbuilder +13 -0
- data/app/views/educode_sales/ideas/follow_ups.json.jbuilder +14 -0
- data/app/views/educode_sales/ideas/index.html.erb +12 -353
- data/app/views/educode_sales/ideas/index.json.jbuilder +7 -1
- data/app/views/educode_sales/ideas/new.html.erb +81 -25
- data/app/views/educode_sales/ideas/new_follow_up.html.erb +105 -0
- data/app/views/educode_sales/ideas/search_new.html.erb +1 -1
- data/app/views/educode_sales/ideas/show_schools.html.erb +84 -0
- data/app/views/educode_sales/ideas/show_schools.json.jbuilder +12 -0
- data/app/views/educode_sales/ideas/show_teachers.html.erb +372 -0
- data/app/views/educode_sales/ideas/upload_file.html.erb +43 -0
- data/app/views/educode_sales/projects/detail.html.erb +1 -1
- data/app/views/educode_sales/projects/edit.html.erb +1 -1
- data/app/views/educode_sales/roles/edit.html.erb +16 -0
- data/app/views/layouts/educode_sales/application.html.erb +5 -5
- data/config/routes.rb +19 -0
- data/db/migrate/20230227061043_create_educode_sales_ideas.rb +2 -2
- data/db/migrate/20230430023424_add_plan_signed_date_to_follow_ups.rb +21 -0
- data/db/migrate/20230430040332_create_educode_sales_contract_date_lists.rb +15 -0
- data/db/migrate/20230430104708_create_idea_follows.rb +25 -0
- data/db/migrate/20230430121335_add_permissions_for_ideas.rb +16 -0
- data/db/migrate/20230430134710_create_educode_sales_assign_staffs.rb +11 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +30 -2
@@ -1,355 +1,14 @@
|
|
1
|
-
<div
|
2
|
-
<
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
<div class="layui-input-inline">
|
13
|
-
<%= select_tag "creator_id", options_for_select(@creator_arr, ""), { include_blank: true } %>
|
14
|
-
</div>
|
15
|
-
</div>
|
16
|
-
<div class="layui-inline">
|
17
|
-
<label class="layui-form-label">方案指派人</label>
|
18
|
-
<div class="layui-input-inline">
|
19
|
-
<%= select_tag "staff_id", options_for_select(@staff_arr, ""), { include_blank: true } %>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
|
-
<div class="layui-inline">
|
23
|
-
<label class="layui-form-label">状态</label>
|
24
|
-
<div class="layui-input-inline">
|
25
|
-
<%= select_tag "status", options_for_select(EducodeSales::Idea.statuses.keys, ""), { include_blank: true } %>
|
26
|
-
</div>
|
27
|
-
</div>
|
28
|
-
<div class="layui-inline">
|
29
|
-
<label class="layui-form-label">类型</label>
|
30
|
-
<div class="layui-input-inline">
|
31
|
-
<%= select_tag "types", options_for_select(EducodeSales::Idea.types.keys, ""), { include_blank: true } %>
|
32
|
-
</div>
|
33
|
-
</div>
|
34
|
-
<div class="layui-inline">
|
35
|
-
<label class="layui-form-label">部署模式</label>
|
36
|
-
<div class="layui-input-inline">
|
37
|
-
<%= select_tag "model", options_for_select(EducodeSales::Idea.models.keys, ""), { include_blank: true } %>
|
38
|
-
</div>
|
39
|
-
</div>
|
40
|
-
<div class="layui-inline">
|
41
|
-
<label class="layui-form-label">历史合作</label>
|
42
|
-
<div class="layui-input-inline">
|
43
|
-
<%= select_tag "history_type", options_for_select([["无", 0], ["有", 1]], ""), { include_blank: true } %>
|
44
|
-
</div>
|
45
|
-
</div>
|
46
|
-
<div class="layui-inline">
|
47
|
-
<label class="layui-form-label">优先级</label>
|
48
|
-
<div class="layui-input-inline">
|
49
|
-
<%= select_tag "level", options_for_select(EducodeSales::Idea.levels.keys, ""), { include_blank: true } %>
|
50
|
-
</div>
|
51
|
-
</div>
|
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" id="name" name="name" placeholder=" - " autocomplete="off">
|
56
|
-
</div>
|
57
|
-
</div>
|
58
|
-
<div class="layui-inline">
|
59
|
-
<label class="layui-form-label">学校/单位</label>
|
60
|
-
<div class="layui-input-inline">
|
61
|
-
<input type="text" class="layui-input" id="school" name="school" placeholder=" - " autocomplete="off">
|
62
|
-
</div>
|
63
|
-
</div>
|
64
|
-
|
65
|
-
<div class="layui-inline">
|
66
|
-
<button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
|
67
|
-
</button>
|
68
|
-
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_ideas">搜 索
|
69
|
-
</button>
|
70
|
-
</div>
|
1
|
+
<div class="layui-tab" lay-filter="operation_tab">
|
2
|
+
<ul class="layui-tab-title">
|
3
|
+
<li class="layui-this follows_li">跟进动态</li>
|
4
|
+
<li class="businesses_list_li">方案列表</li>
|
5
|
+
</ul>
|
6
|
+
<div class="layui-tab-content">
|
7
|
+
<div class="layui-tab-item layui-show">
|
8
|
+
<%= render 'follows' %>
|
9
|
+
</div>
|
10
|
+
<div class="layui-tab-item follows_div">
|
11
|
+
<%= render 'index' %>
|
71
12
|
</div>
|
72
|
-
</form>
|
73
|
-
</div>
|
74
|
-
|
75
|
-
<script type="text/html" id="toolbarDemo">
|
76
|
-
<div class="layui-btn-container">
|
77
|
-
<span class="table-label">方案管理</span>
|
78
|
-
<% if can? :create, EducodeSales::Idea %>
|
79
|
-
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add">新增项目方案</button>
|
80
|
-
<% end %>
|
81
13
|
</div>
|
82
|
-
</
|
83
|
-
<div class="">
|
84
|
-
<table class="layui-hide" id="ideas_table" style="min-height: 300px;" lay-filter="ideas_table"></table>
|
85
|
-
</div>
|
86
|
-
<script type="text/html" id="currentTableBar">
|
87
|
-
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edita" lay-event="add_event">详情</a>
|
88
|
-
<% if can? :update, EducodeSales::Idea %>
|
89
|
-
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="idea_edit">编辑</a>
|
90
|
-
<% end %>
|
91
|
-
<% if can? :destroy, EducodeSales::Idea %>
|
92
|
-
<a class="layui-btn layui-btn-danger layui-btn-xs data-count-edit" lay-event="idea_recycle">移除</a>
|
93
|
-
<% end %>
|
94
|
-
</script>
|
95
|
-
<script type="text/html" id="statusTpl">
|
96
|
-
{{# if(d.status === '已完成'){ }}
|
97
|
-
<span style="color: #22bf18;">{{ d.status }}</span>
|
98
|
-
{{# } else { }}
|
99
|
-
<span style="color: #e60505;">{{ d.status }}</span>
|
100
|
-
{{# } }}
|
101
|
-
</script>
|
102
|
-
|
103
|
-
<script>
|
104
|
-
layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate'], function () {
|
105
|
-
var $ = layui.jquery,
|
106
|
-
form = layui.form,
|
107
|
-
request = layui.request,
|
108
|
-
dropdown = layui.dropdown,
|
109
|
-
miniPage = layui.miniPage,
|
110
|
-
laydate = layui.laydate;
|
111
|
-
|
112
|
-
var laydate = layui.laydate;
|
113
|
-
|
114
|
-
laydate.render({
|
115
|
-
elem: '#created_at',
|
116
|
-
range: true
|
117
|
-
});
|
118
|
-
|
119
|
-
table = layui.table;
|
120
|
-
table.render({
|
121
|
-
elem: '#ideas_table',
|
122
|
-
url: '/missions/ideas',
|
123
|
-
where: {q: form.val('search_form')},
|
124
|
-
toolbar: '#toolbarDemo',
|
125
|
-
totalRow: true,
|
126
|
-
defaultToolbar: ['filter'],
|
127
|
-
cols: [
|
128
|
-
[
|
129
|
-
{
|
130
|
-
field: 'school',
|
131
|
-
width: 160,
|
132
|
-
title: '学校/单位名称'
|
133
|
-
},
|
134
|
-
{
|
135
|
-
field: 'name',
|
136
|
-
width: 160,
|
137
|
-
title: '项目名称'
|
138
|
-
},
|
139
|
-
{
|
140
|
-
field: 'level',
|
141
|
-
width: 100,
|
142
|
-
title: '优先级'
|
143
|
-
},
|
144
|
-
{
|
145
|
-
field: 'staff',
|
146
|
-
title: '方案指派人',
|
147
|
-
width: 100
|
148
|
-
},
|
149
|
-
{
|
150
|
-
field: 'status',
|
151
|
-
width: 100,
|
152
|
-
title: '状态',
|
153
|
-
templet: '#statusTpl'
|
154
|
-
},
|
155
|
-
{
|
156
|
-
field: 'types',
|
157
|
-
width: 100,
|
158
|
-
title: '类型',
|
159
|
-
},
|
160
|
-
{
|
161
|
-
field: 'model',
|
162
|
-
width: 100,
|
163
|
-
title: '部署模式',
|
164
|
-
},
|
165
|
-
{
|
166
|
-
field: 'hardware',
|
167
|
-
width: 150,
|
168
|
-
title: '硬件规模(万)'
|
169
|
-
},
|
170
|
-
{
|
171
|
-
field: 'project',
|
172
|
-
width: 150,
|
173
|
-
title: '并发规模(人)'
|
174
|
-
},
|
175
|
-
{
|
176
|
-
field: 'money',
|
177
|
-
width: 150,
|
178
|
-
title: '项目预算(万)'
|
179
|
-
},
|
180
|
-
{
|
181
|
-
field: 'creator',
|
182
|
-
width: 100,
|
183
|
-
title: '发布人'
|
184
|
-
},
|
185
|
-
{
|
186
|
-
field: 'end_time',
|
187
|
-
width: 200,
|
188
|
-
title: '截止时间'
|
189
|
-
},
|
190
|
-
{
|
191
|
-
field: 'history_type',
|
192
|
-
width: 150,
|
193
|
-
title: '历史合作'
|
194
|
-
},
|
195
|
-
{
|
196
|
-
field: 'created_at',
|
197
|
-
width: 150,
|
198
|
-
title: '创建时间'
|
199
|
-
},
|
200
|
-
{
|
201
|
-
field: 'content',
|
202
|
-
width: 200,
|
203
|
-
title: '反馈情况'
|
204
|
-
},
|
205
|
-
{
|
206
|
-
title: '操作',
|
207
|
-
minWidth: 170,
|
208
|
-
toolbar: '#currentTableBar',
|
209
|
-
align: "center",
|
210
|
-
fixed: 'right'
|
211
|
-
}
|
212
|
-
]
|
213
|
-
],
|
214
|
-
limit: 20,
|
215
|
-
limits: [10, 15, 20, 30, 40, 50, 60, 70, 80, 90],
|
216
|
-
page: true,
|
217
|
-
done: function (res) {
|
218
|
-
}
|
219
|
-
});
|
220
|
-
|
221
|
-
function deleteBusiness(id, name) {
|
222
|
-
layer.confirm('确定删除' + name, function (index) {
|
223
|
-
request.delete('missions/ideas/' + id, {}, function (res) {
|
224
|
-
layer.close(index);
|
225
|
-
table.reload("ideas_table")
|
226
|
-
})
|
227
|
-
});
|
228
|
-
}
|
229
|
-
|
230
|
-
var sort = {}, search = {};
|
231
|
-
table.on('sort(ideas_table)', function (obj) {
|
232
|
-
sort.field = obj.field;
|
233
|
-
sort.order = obj.type;
|
234
|
-
table.reload('ideas_table', {
|
235
|
-
initSort: obj,
|
236
|
-
where: {
|
237
|
-
sort: sort,
|
238
|
-
q: search
|
239
|
-
}
|
240
|
-
});
|
241
|
-
})
|
242
|
-
|
243
|
-
// 监听搜索操作
|
244
|
-
form.on('submit(search_ideas)', function (data) {
|
245
|
-
search = data.field
|
246
|
-
table.reload('ideas_table', {
|
247
|
-
page: {
|
248
|
-
curr: 1
|
249
|
-
},
|
250
|
-
where: {q: search, sort: sort}
|
251
|
-
}, 'data');
|
252
|
-
return false;
|
253
|
-
});
|
254
|
-
|
255
|
-
form.on('submit(reset_business_search)', function (data) {
|
256
|
-
var field = data.field;
|
257
|
-
form.val('search_ideas', {
|
258
|
-
created_at: "",
|
259
|
-
creator_id: "",
|
260
|
-
staff_id: "",
|
261
|
-
name: "",
|
262
|
-
school: "",
|
263
|
-
status: "",
|
264
|
-
model: "",
|
265
|
-
types: "",
|
266
|
-
level: "",
|
267
|
-
history_type: ""
|
268
|
-
})
|
269
|
-
return false;
|
270
|
-
});
|
271
|
-
// form.on('submit(show_hide)', function (data) {
|
272
|
-
// $(".show_item").toggle()
|
273
|
-
// return false;
|
274
|
-
// });
|
275
|
-
/**
|
276
|
-
* toolbar事件监听
|
277
|
-
*/
|
278
|
-
table.on('toolbar(ideas_table)', function (obj) {
|
279
|
-
if (obj.event === 'add') { // 手动添加
|
280
|
-
var content = miniPage.getHrefContent('/missions/ideas/new');
|
281
|
-
var openWH = miniPage.getOpenWidthHeight();
|
282
|
-
add_idea_index = layer.open({
|
283
|
-
title: '新建',
|
284
|
-
type: 1,
|
285
|
-
shade: 0.2,
|
286
|
-
maxmin: true,
|
287
|
-
shadeClose: true,
|
288
|
-
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
289
|
-
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
290
|
-
content: content,
|
291
|
-
});
|
292
|
-
$(window).on("resize", function () {
|
293
|
-
layer.full(index);
|
294
|
-
});
|
295
|
-
}
|
296
|
-
});
|
297
|
-
|
298
|
-
//监听表格复选框选择
|
299
|
-
// table.on('checkbox(ideas_table)', function (obj) {
|
300
|
-
// console.log(obj)
|
301
|
-
// });
|
302
|
-
|
303
|
-
table.on('tool(ideas_table)', function (obj) {
|
304
|
-
var data = obj.data;
|
305
|
-
id = data.id
|
306
|
-
if (obj.event === 'add_event') { // 监听添加操作
|
307
|
-
var content = miniPage.getHrefContent('/missions/ideas/detail?id=' + data.id);
|
308
|
-
var openWH = miniPage.getOpenWidthHeight();
|
309
|
-
show_index = layer.open({
|
310
|
-
title: '详情',
|
311
|
-
type: 1,
|
312
|
-
shade: 0.2,
|
313
|
-
maxmin: true,
|
314
|
-
shadeClose: true,
|
315
|
-
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
316
|
-
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
317
|
-
content: content
|
318
|
-
});
|
319
|
-
$(window).on("resize", function () {
|
320
|
-
layer.full(show_index);
|
321
|
-
});
|
322
|
-
} else if (obj.event === 'idea_recycle') {
|
323
|
-
layer.confirm('确定删除' + data.name, function (index) {
|
324
|
-
request.delete('missions/ideas/' + id, {}, function (res) {
|
325
|
-
layer.close(index);
|
326
|
-
table.reload("ideas_table")
|
327
|
-
})
|
328
|
-
});
|
329
|
-
} else if (obj.event === 'idea_edit') { // 监听添加操作
|
330
|
-
var content = miniPage.getHrefContent('/missions/ideas/' + id + '/edit');
|
331
|
-
var openWH = miniPage.getOpenWidthHeight();
|
332
|
-
edit_index = layer.open({
|
333
|
-
title: '编辑',
|
334
|
-
type: 1,
|
335
|
-
shade: 0.2,
|
336
|
-
maxmin: true,
|
337
|
-
shadeClose: true,
|
338
|
-
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
339
|
-
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
340
|
-
content: content
|
341
|
-
});
|
342
|
-
$(window).on("resize", function () {
|
343
|
-
layer.full(edit_index);
|
344
|
-
});
|
345
|
-
}
|
346
|
-
});
|
347
|
-
|
348
|
-
});
|
349
|
-
</script>
|
350
|
-
<style>
|
351
|
-
.layui-table-tool-temp {
|
352
|
-
padding-right: 30px;
|
353
|
-
!important;
|
354
|
-
}
|
355
|
-
</style>
|
14
|
+
</div>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
json.data do
|
2
2
|
json.array! @ideas do |d|
|
3
|
-
json.(d,
|
3
|
+
json.(d, *d.attributes.keys)
|
4
4
|
json.school d.school&.name
|
5
5
|
json.staff d.staff&.user&.real_name
|
6
6
|
json.hardware d.hardware
|
@@ -11,6 +11,12 @@ json.data do
|
|
11
11
|
json.deleter d.deleter&.user&.real_name
|
12
12
|
json.created_at d.created_at.to_s(:date)
|
13
13
|
json.history_type EducodeSales::Idea.where(school_id: d.school_id).size.to_i >= 2 ? "有" : "无"
|
14
|
+
json.is_deleted @is_deleted
|
15
|
+
json.sale_staff d.sale_staff&.user&.real_name
|
16
|
+
json.f_staff d.last_idea_follow&.staff&.user&.real_name
|
17
|
+
json.f_last_time d.last_idea_follow&.created_at.to_s
|
18
|
+
json.name d.business&.name || d.name
|
19
|
+
json.advise d.advise.to_s
|
14
20
|
end
|
15
21
|
end
|
16
22
|
json.code 0
|
@@ -5,15 +5,15 @@
|
|
5
5
|
<div class="layui-row">
|
6
6
|
<h2 style="padding-left: 25px">方案信息</h2>
|
7
7
|
</div>
|
8
|
-
<div class="layui-row" style="padding-top: 15px">
|
8
|
+
<div class="layui-row" style="padding-top: 15px;display: none">
|
9
9
|
<div class="layui-col-md6">
|
10
|
-
<labeL class="layui-form-label required"
|
10
|
+
<labeL class="layui-form-label required">单位:</labeL>
|
11
11
|
<div class="layui-input-block">
|
12
12
|
<div id="school_id" style="width: 600px;"></div>
|
13
13
|
</div>
|
14
14
|
</div>
|
15
15
|
<div class="layui-col-md6">
|
16
|
-
<labeL class="layui-form-label"
|
16
|
+
<labeL class="layui-form-label">部门:</labeL>
|
17
17
|
<div class="layui-input-block">
|
18
18
|
<div id="department_id" style="width: 600px;"></div>
|
19
19
|
</div>
|
@@ -21,9 +21,9 @@
|
|
21
21
|
</div>
|
22
22
|
<div class="layui-row" style="padding-top: 15px">
|
23
23
|
<div class="layui-col-md6">
|
24
|
-
<labeL class="layui-form-label"
|
24
|
+
<labeL class="layui-form-label">单位联系人:</labeL>
|
25
25
|
<div class="layui-input-block">
|
26
|
-
<input type="text" name="manager_name" autocomplete="off" placeholder="
|
26
|
+
<input type="text" name="manager_name" autocomplete="off" placeholder="请输入单位联系人" value="<%= @idea&.manager_name %>" class="layui-input">
|
27
27
|
</div>
|
28
28
|
</div>
|
29
29
|
<div class="layui-col-md6">
|
@@ -35,7 +35,7 @@
|
|
35
35
|
</div>
|
36
36
|
<div class="layui-row" style="padding-top: 15px">
|
37
37
|
<div class="layui-col-md6">
|
38
|
-
<labeL class="layui-form-label required"
|
38
|
+
<labeL class="layui-form-label required">销售经理:</labeL>
|
39
39
|
<div class="layui-input-block">
|
40
40
|
<div id="sale_staff_id"></div>
|
41
41
|
</div>
|
@@ -51,11 +51,11 @@
|
|
51
51
|
<div class="layui-col-md6">
|
52
52
|
<labeL class="layui-form-label required">项目名称:</labeL>
|
53
53
|
<div class="layui-input-block">
|
54
|
-
<
|
54
|
+
<div id="business_id" style="width: 600px;"></div>
|
55
55
|
</div>
|
56
56
|
</div>
|
57
57
|
<div class="layui-col-md6">
|
58
|
-
<labeL class="layui-form-label"
|
58
|
+
<labeL class="layui-form-label">方案经理:</labeL>
|
59
59
|
<div class="layui-input-block">
|
60
60
|
<div id="new_staff_id"></div>
|
61
61
|
</div>
|
@@ -77,7 +77,7 @@
|
|
77
77
|
</div>
|
78
78
|
<div class="layui-row" style="padding-top: 15px">
|
79
79
|
<div class="layui-col-md6">
|
80
|
-
<labeL class="layui-form-label"
|
80
|
+
<labeL class="layui-form-label">定制类型:</labeL>
|
81
81
|
<div class="layui-input-block">
|
82
82
|
<%= select_tag "types", options_for_select(EducodeSales::Idea.types.keys, @idea&.types), { 'lay-filter': 'types', include_blank: false } %>
|
83
83
|
</div>
|
@@ -89,11 +89,25 @@
|
|
89
89
|
</div>
|
90
90
|
</div>
|
91
91
|
</div>
|
92
|
+
<div class="layui-row" style="padding-top: 15px">
|
93
|
+
<div class="layui-col-md6">
|
94
|
+
<labeL class="layui-form-label">方案类型:</labeL>
|
95
|
+
<div class="layui-input-block">
|
96
|
+
<%= select_tag "idea_type", options_for_select(EducodeSales::Idea.idea_types.keys, @idea&.idea_type), { 'lay-filter': 'idea_type', include_blank: false } %>
|
97
|
+
</div>
|
98
|
+
</div>
|
99
|
+
<div class="layui-col-md6">
|
100
|
+
<labeL class="layui-form-label">指派人:</labeL>
|
101
|
+
<div class="layui-input-block">
|
102
|
+
<div id="other_staff_ids"></div>
|
103
|
+
</div>
|
104
|
+
</div>
|
105
|
+
</div>
|
92
106
|
<div class="layui-row" style="padding-top: 15px">
|
93
107
|
<div class="layui-col-md6">
|
94
108
|
<labeL class="layui-form-label">硬件规模(万):</labeL>
|
95
109
|
<div class="layui-input-block">
|
96
|
-
<input type="number" name="hardware" autocomplete="off"
|
110
|
+
<input type="number" name="hardware" autocomplete="off" placeholder="请输入硬件规模" value="<%= @idea&.hardware %>" class="layui-input">
|
97
111
|
</div>
|
98
112
|
</div>
|
99
113
|
<div class="layui-col-md6">
|
@@ -126,9 +140,9 @@
|
|
126
140
|
</div>
|
127
141
|
</div>
|
128
142
|
<div class="layui-row" style="padding-top: 15px">
|
129
|
-
<labeL class="layui-form-label"
|
143
|
+
<labeL class="layui-form-label">需求说明:</labeL>
|
130
144
|
<div class="layui-input-block">
|
131
|
-
<textarea name="content" placeholder="
|
145
|
+
<textarea name="content" placeholder="需求说明" class="layui-textarea"><%= @idea&.content.to_s %></textarea>
|
132
146
|
</div>
|
133
147
|
</div>
|
134
148
|
<div class="layui-row" style="padding-top: 15px">
|
@@ -182,15 +196,15 @@
|
|
182
196
|
|
183
197
|
layui.use(['form', 'upload', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput', 'xmSelect'], function () {
|
184
198
|
var form = layui.form,
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
199
|
+
layer = layui.layer,
|
200
|
+
request = layui.request,
|
201
|
+
laydate = layui.laydate,
|
202
|
+
table = layui.table,
|
203
|
+
laytpl = layui.laytpl,
|
204
|
+
request = layui.request,
|
205
|
+
xmSelect = layui.xmSelect,
|
206
|
+
upload = layui.upload,
|
207
|
+
$ = layui.$;
|
194
208
|
selectInput = layui.selectInput;
|
195
209
|
|
196
210
|
form.render();
|
@@ -200,6 +214,40 @@
|
|
200
214
|
});
|
201
215
|
form.render();
|
202
216
|
|
217
|
+
var business_list = xmSelect.render({
|
218
|
+
el: '#business_id',
|
219
|
+
remoteSearch: true,
|
220
|
+
autoRow: true,
|
221
|
+
radio: true,
|
222
|
+
delay: 1000,
|
223
|
+
tips: '支持名称搜索,请至少输入一个字符',
|
224
|
+
searchTips: '支持名称搜索,请至少输入一个字符',
|
225
|
+
paging: true,
|
226
|
+
pageRemote: true,
|
227
|
+
filterable: true,
|
228
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
229
|
+
if (!val) {
|
230
|
+
return cb([]);
|
231
|
+
}
|
232
|
+
$.ajax('/missions/staff_business', {
|
233
|
+
method: 'get',
|
234
|
+
data: {
|
235
|
+
q: val,
|
236
|
+
page: pageIndex
|
237
|
+
},
|
238
|
+
dataType: 'json',
|
239
|
+
success: function (res) {
|
240
|
+
var data = res.data;
|
241
|
+
if (res.code == 0) {
|
242
|
+
cb(res.data, res.count);
|
243
|
+
} else {
|
244
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
245
|
+
}
|
246
|
+
}
|
247
|
+
})
|
248
|
+
}
|
249
|
+
})
|
250
|
+
|
203
251
|
var school_list = xmSelect.render({
|
204
252
|
el: '#school_id',
|
205
253
|
remoteSearch: true,
|
@@ -330,6 +378,12 @@
|
|
330
378
|
filterable: true,
|
331
379
|
multiple: true
|
332
380
|
})
|
381
|
+
var other_staff_list = xmSelect.render({
|
382
|
+
el: '#other_staff_ids',
|
383
|
+
data: gon.staffs,
|
384
|
+
filterable: true,
|
385
|
+
multiple: true
|
386
|
+
})
|
333
387
|
|
334
388
|
var attachment_list = xmSelect.render({
|
335
389
|
el: '#attachment_ids',
|
@@ -367,10 +421,6 @@
|
|
367
421
|
school_list.getValue().forEach(function (d) {
|
368
422
|
schools.push(d.value);
|
369
423
|
})
|
370
|
-
if (schools.length == 0) {
|
371
|
-
layer.alert("请选择学校");
|
372
|
-
return false;
|
373
|
-
}
|
374
424
|
data.field.school_id = schools[0];
|
375
425
|
|
376
426
|
var departments = [];
|
@@ -378,9 +428,15 @@
|
|
378
428
|
departments.push(d.value);
|
379
429
|
})
|
380
430
|
data.field.department_id = departments[0];
|
431
|
+
var business = [];
|
432
|
+
business_list.getValue().forEach(function (d) {
|
433
|
+
business.push(d.value);
|
434
|
+
})
|
435
|
+
data.field.business_id = business[0];
|
381
436
|
data.field.staff_id = staff_list.getValue('valueStr');
|
382
437
|
data.field.sale_staff_id = sale_staff_list.getValue('valueStr');
|
383
438
|
data.field.assist_staff_ids = assist_staff_list.getValue('valueStr');
|
439
|
+
data.field.other_staff_ids = other_staff_list.getValue('valueStr');
|
384
440
|
data.field.attachment_ids = attachment_list.getValue('valueStr');
|
385
441
|
request.authPost("missions/ideas/", data.field, function (res) {
|
386
442
|
if (res.success == false) {
|