educode_sales 0.9.64 → 0.9.66
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/ideas_controller.rb +6 -0
- data/app/models/educode_sales/idea.rb +5 -0
- data/app/views/educode_sales/idea_recycles/detail.html.erb +12 -0
- data/app/views/educode_sales/idea_recycles/index.html.erb +9 -1
- data/app/views/educode_sales/ideas/detail.html.erb +20 -8
- data/app/views/educode_sales/ideas/edit.html.erb +69 -35
- data/app/views/educode_sales/ideas/index.html.erb +10 -1
- data/app/views/educode_sales/ideas/new.html.erb +48 -27
- data/db/migrate/20230327021033_add_attachment_ids_to_ideas.rb +5 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c77ba5bbfa29534697eba58c7d999ffbe0834fb358aae6b3e923278e5f16475e
|
4
|
+
data.tar.gz: 78b061d50d1bd7bff1e58e2dfdc4bcf23ac85661980324dfce85b0dd961d8dac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4567e920c14a07085963ca478f9629def13a74ab78e5d0f1c8a9559e5c32f9e1e2ebed39bef4396a1f3d1e5e6e8b42ea5dd18128c8be6275b5c91430d59b32f2
|
7
|
+
data.tar.gz: dc98da54f8926781094902266a9eeaae2e0d1f6cab8837c27795bccab0d031da4946f19246baefdd11534af288a9afc37aa3e4ecf865a22d7d0a6a499870b809
|
@@ -62,6 +62,7 @@ module EducodeSales
|
|
62
62
|
gon.staffs = staffs.map { |d| { name: d.user.real_name, value: d.id } }
|
63
63
|
gon.department = { value: '', name: '' }
|
64
64
|
gon.value = ''
|
65
|
+
gon.attachments = []
|
65
66
|
render layout: false
|
66
67
|
end
|
67
68
|
|
@@ -70,6 +71,8 @@ module EducodeSales
|
|
70
71
|
# idea.school_id = Department.find_by_id(idea.department_id)&.school_id
|
71
72
|
idea.creator = current_user
|
72
73
|
assist_staff_ids = Array(params[:assist_staff_ids].to_s.split(","))
|
74
|
+
attachment_ids = Array(params[:attachment_ids].to_s.split(","))
|
75
|
+
idea.attachment_ids = attachment_ids
|
73
76
|
idea.assist_staff_ids = assist_staff_ids
|
74
77
|
idea.save
|
75
78
|
render_success
|
@@ -88,6 +91,8 @@ module EducodeSales
|
|
88
91
|
# @idea.school_id = Department.find_by_id(@idea.department_id)&.school_id
|
89
92
|
assist_staff_ids = Array(params[:assist_staff_ids].to_s.split(","))
|
90
93
|
@idea.assist_staff_ids = assist_staff_ids
|
94
|
+
attachment_ids = Array(params[:attachment_ids].to_s.split(","))
|
95
|
+
@idea.attachment_ids = attachment_ids
|
91
96
|
check_changes
|
92
97
|
@idea.save
|
93
98
|
render_success
|
@@ -104,6 +109,7 @@ module EducodeSales
|
|
104
109
|
gon.staff_value = [{ name: @idea.staff&.user&.real_name, value: @idea.staff_id }]
|
105
110
|
gon.sale_staff_value = [{ name: @idea.sale_staff&.user&.real_name, value: @idea.sale_staff_id }]
|
106
111
|
gon.assist_staff_value = @idea.assist_staffs.map { |d| { name: d&.user&.real_name, value: d.id } }
|
112
|
+
gon.attachment_list = @idea.attachments.map { |d| { name: d.filename, value: d.id } }
|
107
113
|
gon.department = { value: @idea&.department_id, name: "#{@idea&.department&.school&.name}-#{@idea&.department&.name}" }
|
108
114
|
gon.value = @idea.department_id
|
109
115
|
gon.department_list = @idea.department.present? ? [{ name: @idea.department.name, value: @idea.department_id }] : []
|
@@ -20,6 +20,7 @@ module EducodeSales
|
|
20
20
|
enum model: %w[本地版 线上版 混合版]
|
21
21
|
|
22
22
|
serialize :assist_staff_ids,Array
|
23
|
+
serialize :attachment_ids, Array
|
23
24
|
|
24
25
|
# before_save :check_changes
|
25
26
|
|
@@ -31,6 +32,10 @@ module EducodeSales
|
|
31
32
|
Staff.where(id: self.assist_staff_ids)
|
32
33
|
end
|
33
34
|
|
35
|
+
def attachments
|
36
|
+
Attachment.where(id: self.attachment_ids)
|
37
|
+
end
|
38
|
+
|
34
39
|
def soft_destroy(staff_id)
|
35
40
|
self.update(deleted_at: Time.now, deleter_id: staff_id, is_deleted: true)
|
36
41
|
end
|
@@ -131,6 +131,18 @@
|
|
131
131
|
<%= idea.content.to_s %>
|
132
132
|
</div>
|
133
133
|
</div>
|
134
|
+
|
135
|
+
<div class="layui-inline">
|
136
|
+
<label class="layui-form-label" style="width: 100px">方案材料:</label>
|
137
|
+
<div class="layui-input-inline" style="width: 1000px">
|
138
|
+
<% idea.attachments.each do |a| %>
|
139
|
+
<%= link_to "/missions/upload_files/download?id=#{a.id}", target: '_blank' do %>
|
140
|
+
<%= a&.filename.to_s %>
|
141
|
+
<% end %>
|
142
|
+
<% end %>
|
143
|
+
</div>
|
144
|
+
</div>
|
145
|
+
|
134
146
|
</div>
|
135
147
|
</div>
|
136
148
|
<hr>
|
@@ -86,6 +86,13 @@
|
|
86
86
|
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="idea_recycle">恢复</a>
|
87
87
|
<% end %>
|
88
88
|
</script>
|
89
|
+
<script type="text/html" id="statusTpl">
|
90
|
+
{{# if(d.status === '已完成'){ }}
|
91
|
+
<span style="color: #22bf18;">{{ d.status }}</span>
|
92
|
+
{{# } else { }}
|
93
|
+
<span style="color: #e60505;">{{ d.status }}</span>
|
94
|
+
{{# } }}
|
95
|
+
</script>
|
89
96
|
<script>
|
90
97
|
layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate'], function () {
|
91
98
|
var $ = layui.jquery,
|
@@ -135,7 +142,8 @@
|
|
135
142
|
{
|
136
143
|
field: 'status',
|
137
144
|
width: 100,
|
138
|
-
title: '状态'
|
145
|
+
title: '状态',
|
146
|
+
templet: '#statusTpl'
|
139
147
|
},
|
140
148
|
{
|
141
149
|
field: 'types',
|
@@ -65,14 +65,14 @@
|
|
65
65
|
<%= idea.assist_staffs.map { |d| d&.user&.real_name }.reject(&:blank?).join("、") %>
|
66
66
|
</div>
|
67
67
|
</div>
|
68
|
-
<div class="layui-inline"
|
69
|
-
<label class="layui-form-label" style="width: 100px">方案材料:</label
|
70
|
-
<div class="layui-input-inline"
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
</div
|
75
|
-
</div
|
68
|
+
<!-- <div class="layui-inline">-->
|
69
|
+
<!-- <label class="layui-form-label" style="width: 100px">方案材料:</label>-->
|
70
|
+
<!-- <div class="layui-input-inline">-->
|
71
|
+
<%#= link_to "/missions/upload_files/download?id=#{idea.attachment_id}", target: '_blank' do %>
|
72
|
+
<%#= idea.attachment&.filename.to_s %>
|
73
|
+
<%# end %>
|
74
|
+
<!-- </div>-->
|
75
|
+
<!-- </div>-->
|
76
76
|
<br>
|
77
77
|
<div class="layui-inline">
|
78
78
|
<label class="layui-form-label" style="width: 100px">优先级:</label>
|
@@ -131,6 +131,18 @@
|
|
131
131
|
<%= idea.content.to_s %>
|
132
132
|
</div>
|
133
133
|
</div>
|
134
|
+
|
135
|
+
<div class="layui-inline">
|
136
|
+
<label class="layui-form-label" style="width: 100px">方案材料:</label>
|
137
|
+
<div class="layui-input-inline" style="width: 1000px">
|
138
|
+
<% idea.attachments.each do |a| %>
|
139
|
+
<%= link_to "/missions/upload_files/download?id=#{a.id}", target: '_blank' do %>
|
140
|
+
<%= a&.filename.to_s %>
|
141
|
+
<% end %>
|
142
|
+
<% end %>
|
143
|
+
</div>
|
144
|
+
</div>
|
145
|
+
|
134
146
|
</div>
|
135
147
|
</div>
|
136
148
|
<hr>
|
@@ -55,30 +55,30 @@
|
|
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>
|
62
62
|
</div>
|
63
63
|
</div>
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
64
|
+
<div class="layui-row" style="padding-top: 15px">
|
65
|
+
<div class="layui-col-md6">
|
66
|
+
<labeL class="layui-form-label">优先级:</labeL>
|
67
|
+
<div class="layui-input-block">
|
68
|
+
<%= select_tag "level", options_for_select(EducodeSales::Idea.levels.keys, @idea&.level), { 'lay-filter': 'level', include_blank: false } %>
|
69
|
+
</div>
|
69
70
|
</div>
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
71
|
+
<div class="layui-col-md6">
|
72
|
+
<labeL class="layui-form-label">状态:</labeL>
|
73
|
+
<div class="layui-input-block">
|
74
|
+
<%= select_tag "status", options_for_select(EducodeSales::Idea.statuses.keys, @idea&.status), { 'lay-filter': 'status', include_blank: false } %>
|
75
|
+
</div>
|
75
76
|
</div>
|
76
77
|
</div>
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
<div class="layui-input-block">
|
78
|
+
<div class="layui-row" style="padding-top: 15px">
|
79
|
+
<div class="layui-col-md6">
|
80
|
+
<labeL class="layui-form-label">类型:</labeL>
|
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>
|
84
84
|
</div>
|
@@ -91,15 +91,15 @@
|
|
91
91
|
</div>
|
92
92
|
<div class="layui-row" style="padding-top: 15px">
|
93
93
|
<div class="layui-col-md6">
|
94
|
-
<labeL class="layui-form-label
|
94
|
+
<labeL class="layui-form-label">硬件规模(万):</labeL>
|
95
95
|
<div class="layui-input-block">
|
96
|
-
<input type="number" name="hardware" autocomplete="off"
|
96
|
+
<input type="number" name="hardware" autocomplete="off" placeholder="请输入硬件规模" value="<%= @idea&.hardware %>" class="layui-input">
|
97
97
|
</div>
|
98
98
|
</div>
|
99
99
|
<div class="layui-col-md6">
|
100
|
-
<labeL class="layui-form-label">项目预算(万):</labeL>
|
100
|
+
<labeL class="layui-form-label required">项目预算(万):</labeL>
|
101
101
|
<div class="layui-input-block">
|
102
|
-
<input type="number" name="money" autocomplete="off" placeholder="请输入项目预算" value="<%= @idea&.money %>" class="layui-input">
|
102
|
+
<input type="number" name="money" autocomplete="off" lay-verify="required" lay-reqtext="项目预算不能为空" placeholder="请输入项目预算" value="<%= @idea&.money %>" class="layui-input">
|
103
103
|
</div>
|
104
104
|
</div>
|
105
105
|
</div>
|
@@ -138,6 +138,12 @@
|
|
138
138
|
<button type="button" class="layui-btn layui-btn-normal" id="test8">选择文件</button>
|
139
139
|
</div>
|
140
140
|
</div>
|
141
|
+
<div class="layui-col-md6">
|
142
|
+
<labeL class="layui-form-label">文件:</labeL>
|
143
|
+
<div class="layui-input-block">
|
144
|
+
<div id="attachment_ids"></div>
|
145
|
+
</div>
|
146
|
+
</div>
|
141
147
|
</div>
|
142
148
|
<div class="layui-row" style="padding-top: 30px; float: left">
|
143
149
|
<div class="layui-input-block">
|
@@ -228,8 +234,8 @@
|
|
228
234
|
autoRow: true,
|
229
235
|
radio: true,
|
230
236
|
delay: 1000,
|
231
|
-
tips: '
|
232
|
-
searchTips: '
|
237
|
+
tips: '支持名称搜索,请至少输入一个字符',
|
238
|
+
searchTips: '支持名称搜索,请至少输入一个字符',
|
233
239
|
paging: true,
|
234
240
|
pageRemote: true,
|
235
241
|
filterable: true,
|
@@ -284,18 +290,18 @@
|
|
284
290
|
});
|
285
291
|
form.render();
|
286
292
|
|
287
|
-
upload.render({
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
});
|
293
|
+
// upload.render({
|
294
|
+
// elem: '#test8'
|
295
|
+
// , url: '/missions/upload_files' //此处配置你自己的上传接口即可
|
296
|
+
// , auto: true
|
297
|
+
// , accept: 'file' //普通文件
|
298
|
+
// , bindAction: '#test9'
|
299
|
+
// , done: function (res) {
|
300
|
+
// layer.msg('上传成功');
|
301
|
+
// $("#attachment_id").val(res.attachment_id)
|
302
|
+
// // $("#filename").val(res.filename)
|
303
|
+
// }
|
304
|
+
// });
|
299
305
|
|
300
306
|
|
301
307
|
var staff_list = xmSelect.render({
|
@@ -315,12 +321,39 @@
|
|
315
321
|
el: '#assist_staff_ids',
|
316
322
|
data: gon.staffs,
|
317
323
|
filterable: true,
|
318
|
-
multiple:true
|
324
|
+
multiple: true
|
325
|
+
})
|
326
|
+
|
327
|
+
|
328
|
+
var attachment_list = xmSelect.render({
|
329
|
+
el: '#attachment_ids',
|
330
|
+
data: [],
|
331
|
+
filterable: true,
|
332
|
+
multiple: true
|
319
333
|
})
|
320
334
|
|
335
|
+
|
336
|
+
upload.render({
|
337
|
+
elem: '#test8'
|
338
|
+
, url: '/missions/upload_files' //此处配置你自己的上传接口即可
|
339
|
+
, auto: true
|
340
|
+
, accept: 'file' //普通文件
|
341
|
+
, bindAction: '#test9'
|
342
|
+
, done: function (res) {
|
343
|
+
layer.msg('上传成功');
|
344
|
+
// $("#attachment_id").val(res.attachment_id)
|
345
|
+
// $("#filename").val(res.filename)
|
346
|
+
a = attachment_list.getValue()
|
347
|
+
b = [{name: res.filename, value: res.attachment_id}]
|
348
|
+
c = a.concat(b)
|
349
|
+
attachment_list.setValue(c)
|
350
|
+
}
|
351
|
+
});
|
352
|
+
|
321
353
|
staff_list.setValue(gon.staff_value)
|
322
354
|
sale_staff_list.setValue(gon.sale_staff_value)
|
323
355
|
assist_staff_list.setValue(gon.assist_staff_value)
|
356
|
+
attachment_list.setValue(gon.attachment_list)
|
324
357
|
|
325
358
|
var department_id = gon.value;
|
326
359
|
var department = selectInput.render({
|
@@ -354,6 +387,7 @@
|
|
354
387
|
data.field.staff_id = staff_list.getValue('valueStr');
|
355
388
|
data.field.sale_staff_id = sale_staff_list.getValue('valueStr');
|
356
389
|
data.field.assist_staff_ids = assist_staff_list.getValue('valueStr');
|
390
|
+
data.field.attachment_ids = attachment_list.getValue('valueStr');
|
357
391
|
var schools = [];
|
358
392
|
school_list.getValue().forEach(function (d) {
|
359
393
|
schools.push(d.value);
|
@@ -92,6 +92,14 @@
|
|
92
92
|
<a class="layui-btn layui-btn-danger layui-btn-xs data-count-edit" lay-event="idea_recycle">移除</a>
|
93
93
|
<% end %>
|
94
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
|
+
|
95
103
|
<script>
|
96
104
|
layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate'], function () {
|
97
105
|
var $ = layui.jquery,
|
@@ -141,7 +149,8 @@
|
|
141
149
|
{
|
142
150
|
field: 'status',
|
143
151
|
width: 100,
|
144
|
-
title: '状态'
|
152
|
+
title: '状态',
|
153
|
+
templet: '#statusTpl'
|
145
154
|
},
|
146
155
|
{
|
147
156
|
field: 'types',
|
@@ -23,13 +23,13 @@
|
|
23
23
|
<div class="layui-col-md6">
|
24
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">
|
30
30
|
<labeL class="layui-form-label">负责人电话:</labeL>
|
31
31
|
<div class="layui-input-block">
|
32
|
-
<input type="text" name="manager_phone" autocomplete="off" placeholder="
|
32
|
+
<input type="text" name="manager_phone" autocomplete="off" placeholder="请输入负责人电话" value="<%= @idea&.manager_phone %>" class="layui-input">
|
33
33
|
</div>
|
34
34
|
</div>
|
35
35
|
</div>
|
@@ -55,7 +55,7 @@
|
|
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>
|
@@ -63,13 +63,13 @@
|
|
63
63
|
</div>
|
64
64
|
<div class="layui-row" style="padding-top: 15px">
|
65
65
|
<div class="layui-col-md6">
|
66
|
-
<labeL class="layui-form-label
|
66
|
+
<labeL class="layui-form-label">优先级:</labeL>
|
67
67
|
<div class="layui-input-block">
|
68
68
|
<%= select_tag "level", options_for_select(EducodeSales::Idea.levels.keys, @idea&.level), { 'lay-filter': 'level', include_blank: false } %>
|
69
69
|
</div>
|
70
70
|
</div>
|
71
71
|
<div class="layui-col-md6">
|
72
|
-
<labeL class="layui-form-label
|
72
|
+
<labeL class="layui-form-label">状态:</labeL>
|
73
73
|
<div class="layui-input-block">
|
74
74
|
<%= select_tag "status", options_for_select(EducodeSales::Idea.statuses.keys, @idea&.status), { 'lay-filter': 'status', include_blank: false } %>
|
75
75
|
</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>
|
@@ -91,15 +91,15 @@
|
|
91
91
|
</div>
|
92
92
|
<div class="layui-row" style="padding-top: 15px">
|
93
93
|
<div class="layui-col-md6">
|
94
|
-
<labeL class="layui-form-label
|
94
|
+
<labeL class="layui-form-label">硬件规模(万):</labeL>
|
95
95
|
<div class="layui-input-block">
|
96
|
-
<input type="number" name="hardware" autocomplete="off"
|
96
|
+
<input type="number" name="hardware" autocomplete="off" placeholder="请输入硬件规模" value="<%= @idea&.hardware %>" class="layui-input">
|
97
97
|
</div>
|
98
98
|
</div>
|
99
99
|
<div class="layui-col-md6">
|
100
|
-
<labeL class="layui-form-label">项目预算(万):</labeL>
|
100
|
+
<labeL class="layui-form-label required">项目预算(万):</labeL>
|
101
101
|
<div class="layui-input-block">
|
102
|
-
<input type="number" name="money" autocomplete="off" placeholder="请输入项目预算" value="<%= @idea&.money %>" class="layui-input">
|
102
|
+
<input type="number" name="money" autocomplete="off" lay-verify="required" lay-reqtext="项目预算不能为空" placeholder="请输入项目预算" value="<%= @idea&.money %>" class="layui-input">
|
103
103
|
</div>
|
104
104
|
</div>
|
105
105
|
</div>
|
@@ -138,6 +138,12 @@
|
|
138
138
|
<button type="button" class="layui-btn layui-btn-normal" id="test8">选择文件</button>
|
139
139
|
</div>
|
140
140
|
</div>
|
141
|
+
<div class="layui-col-md6">
|
142
|
+
<labeL class="layui-form-label">文件:</labeL>
|
143
|
+
<div class="layui-input-block">
|
144
|
+
<div id="attachment_ids"></div>
|
145
|
+
</div>
|
146
|
+
</div>
|
141
147
|
</div>
|
142
148
|
<div class="layui-row" style="padding-top: 30px; float: left">
|
143
149
|
<div class="layui-input-block">
|
@@ -234,8 +240,8 @@
|
|
234
240
|
autoRow: true,
|
235
241
|
radio: true,
|
236
242
|
delay: 1000,
|
237
|
-
tips: '
|
238
|
-
searchTips: '
|
243
|
+
tips: '支持名称搜索,请至少输入一个字符',
|
244
|
+
searchTips: '支持名称搜索,请至少输入一个字符',
|
239
245
|
paging: true,
|
240
246
|
pageRemote: true,
|
241
247
|
filterable: true,
|
@@ -275,18 +281,7 @@
|
|
275
281
|
})
|
276
282
|
|
277
283
|
|
278
|
-
|
279
|
-
elem: '#test8'
|
280
|
-
, url: '/missions/upload_files' //此处配置你自己的上传接口即可
|
281
|
-
, auto: true
|
282
|
-
, accept: 'file' //普通文件
|
283
|
-
, bindAction: '#test9'
|
284
|
-
, done: function (res) {
|
285
|
-
layer.msg('上传成功');
|
286
|
-
$("#attachment_id").val(res.attachment_id)
|
287
|
-
// $("#filename").val(res.filename)
|
288
|
-
}
|
289
|
-
});
|
284
|
+
|
290
285
|
|
291
286
|
|
292
287
|
var department_id = gon.value;
|
@@ -336,6 +331,31 @@
|
|
336
331
|
multiple: true
|
337
332
|
})
|
338
333
|
|
334
|
+
var attachment_list = xmSelect.render({
|
335
|
+
el: '#attachment_ids',
|
336
|
+
data: gon.attachments,
|
337
|
+
filterable: true,
|
338
|
+
multiple: true
|
339
|
+
})
|
340
|
+
|
341
|
+
|
342
|
+
upload.render({
|
343
|
+
elem: '#test8'
|
344
|
+
, url: '/missions/upload_files' //此处配置你自己的上传接口即可
|
345
|
+
, auto: true
|
346
|
+
, accept: 'file' //普通文件
|
347
|
+
, bindAction: '#test9'
|
348
|
+
, done: function (res) {
|
349
|
+
layer.msg('上传成功');
|
350
|
+
// $("#attachment_id").val(res.attachment_id)
|
351
|
+
// $("#filename").val(res.filename)
|
352
|
+
a = attachment_list.getValue()
|
353
|
+
b = [{name: res.filename, value: res.attachment_id}]
|
354
|
+
c = a.concat(b)
|
355
|
+
attachment_list.setValue(c)
|
356
|
+
}
|
357
|
+
});
|
358
|
+
|
339
359
|
//监听提交
|
340
360
|
form.on('submit(saveBtn)', function (data) {
|
341
361
|
// if (department.getValue() == "" && department_id == "") {
|
@@ -361,6 +381,7 @@
|
|
361
381
|
data.field.staff_id = staff_list.getValue('valueStr');
|
362
382
|
data.field.sale_staff_id = sale_staff_list.getValue('valueStr');
|
363
383
|
data.field.assist_staff_ids = assist_staff_list.getValue('valueStr');
|
384
|
+
data.field.attachment_ids = attachment_list.getValue('valueStr');
|
364
385
|
request.authPost("missions/ideas/", data.field, function (res) {
|
365
386
|
if (res.success == false) {
|
366
387
|
layer.alert(res.msg)
|
@@ -368,9 +389,9 @@
|
|
368
389
|
layer.close(parent.add_idea_index);
|
369
390
|
parent.layer.close(parent.layer.getFrameIndex(window.name))
|
370
391
|
parent.table.reload('ideas_table', {
|
371
|
-
|
372
|
-
|
373
|
-
|
392
|
+
done: function () {
|
393
|
+
}
|
394
|
+
});
|
374
395
|
}
|
375
396
|
})
|
376
397
|
// }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: educode_sales
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.66
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -568,6 +568,7 @@ files:
|
|
568
568
|
- db/migrate/20230319050647_add_clazz_to_educode_sales_activities.rb
|
569
569
|
- db/migrate/20230319105048_create_educode_sales_activity_staffs.rb
|
570
570
|
- db/migrate/20230322034022_add_to_school_name_to_ideas.rb
|
571
|
+
- db/migrate/20230327021033_add_attachment_ids_to_ideas.rb
|
571
572
|
- lib/educode_sales.rb
|
572
573
|
- lib/educode_sales/engine.rb
|
573
574
|
- lib/educode_sales/version.rb
|