educode_sales 0.9.58 → 0.9.60

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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/indexlogo.png +0 -0
  3. data/app/controllers/educode_sales/activities_controller.rb +54 -1
  4. data/app/controllers/educode_sales/home_controller.rb +4 -0
  5. data/app/controllers/educode_sales/ideas_controller.rb +86 -1
  6. data/app/controllers/educode_sales/upload_files_controller.rb +1 -1
  7. data/app/models/educode_sales/activity.rb +6 -0
  8. data/app/models/educode_sales/activity_staff.rb +9 -0
  9. data/app/models/educode_sales/idea.rb +23 -10
  10. data/app/models/educode_sales/role_area.rb +1 -0
  11. data/app/views/educode_sales/activities/edit.html.erb +69 -2
  12. data/app/views/educode_sales/activities/index.html.erb +27 -1
  13. data/app/views/educode_sales/activities/index.json.jbuilder +5 -0
  14. data/app/views/educode_sales/activities/new.html.erb +100 -15
  15. data/app/views/educode_sales/businesses/time_line.html.erb +30 -0
  16. data/app/views/educode_sales/home/search_edu_user.json.jbuilder +13 -0
  17. data/app/views/educode_sales/idea_recycles/detail.html.erb +25 -4
  18. data/app/views/educode_sales/idea_recycles/index.html.erb +3 -3
  19. data/app/views/educode_sales/idea_recycles/index.json.jbuilder +1 -1
  20. data/app/views/educode_sales/ideas/detail.html.erb +25 -4
  21. data/app/views/educode_sales/ideas/edit.html.erb +134 -27
  22. data/app/views/educode_sales/ideas/index.html.erb +3 -3
  23. data/app/views/educode_sales/ideas/index.json.jbuilder +4 -4
  24. data/app/views/educode_sales/ideas/new.html.erb +118 -15
  25. data/config/routes.rb +1 -0
  26. data/db/migrate/20230319050647_add_clazz_to_educode_sales_activities.rb +6 -0
  27. data/db/migrate/20230319105048_create_educode_sales_activity_staffs.rb +13 -0
  28. data/db/migrate/20230322034022_add_to_school_name_to_ideas.rb +17 -0
  29. data/lib/educode_sales/version.rb +1 -1
  30. metadata +12 -6
@@ -1,12 +1,17 @@
1
- <%#= Gon::Base.render_data %>
1
+ <%= Gon::Base.render_data %>
2
2
  <div class="layuimini-main">
3
- <form class="layui-form layuimini-form" action="">
3
+ <div class="layui-form layuimini-form">
4
4
  <div class="layui-form-item" style="padding: 25px">
5
5
  <div class="layui-inline">
6
6
  <label class="layui-form-label required">活动名称</label>
7
7
  <div class="layui-input-block">
8
- <input type="text" name="name" required lay-verify="required" placeholder="请输入"
9
- class="layui-input" id="inputFocus">
8
+ <input type="text" name="name" required lay-verify="required" placeholder="请输入" class="layui-input" id="inputFocus">
9
+ </div>
10
+ </div>
11
+ <div class="layui-inline">
12
+ <label class="layui-form-label required">活动类型</label>
13
+ <div class="layui-input-block">
14
+ <%= select_tag "clazz_id", options_for_select(@clazz), { 'lay-filter': 'clazz_id', class: 'required' } %>
10
15
  </div>
11
16
  </div>
12
17
  <div class="layui-inline">
@@ -18,22 +23,44 @@
18
23
  <div class="layui-inline">
19
24
  <label class="layui-form-label required">活动天数</label>
20
25
  <div class="layui-input-block">
21
- <input type="text" name="days" required lay-verify="required"
22
- class="layui-input">
26
+ <input type="text" name="days" required lay-verify="required" class="layui-input">
27
+ </div>
28
+ </div>
29
+ <div class="layui-inline">
30
+ <label class="layui-form-label">生态经理</label>
31
+ <div class="layui-input-block">
32
+ <div id="staff_manage_list" style="width: 163px;"></div>
33
+ </div>
34
+ </div>
35
+ <div class="layui-inline">
36
+ <label class="layui-form-label">协助人员</label>
37
+ <div class="layui-input-block">
38
+ <div id="staff_assist_list" style="width: 193px;"></div>
39
+ </div>
40
+ </div>
41
+ <div class="layui-inline">
42
+ <label class="layui-form-label">报告专家</label>
43
+ <div class="layui-input-block">
44
+ <div id="expert_list" style="width: 600px;"></div>
45
+ </div>
46
+ </div>
47
+ <div class="layui-inline">
48
+ <label class="layui-form-label">上传附件</label>
49
+ <div class="layui-input-block">
50
+ <button type="button" class="layui-btn" id="upload_file">上传文件</button>
23
51
  </div>
24
52
  </div>
25
53
  <div class="layui-inline" style="padding-left: 30px">
26
- <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交
27
- </button>
54
+ <button class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交 </button>
28
55
  </div>
29
56
  </div>
30
- </form>
57
+ </div>
31
58
  </div>
32
59
 
33
60
  <script>
34
61
  document.getElementById("inputFocus").focus();
35
62
 
36
- layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput', 'transfer'], function () {
63
+ layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput', 'transfer', 'xmSelect'], function () {
37
64
  var form = layui.form,
38
65
  layer = layui.layer,
39
66
  table = layui.table,
@@ -41,6 +68,9 @@
41
68
  laytpl = layui.laytpl,
42
69
  request = layui.request,
43
70
  laydate = layui.laydate,
71
+ xmSelect = layui.xmSelect,
72
+ upload = layui.upload,
73
+ selectInput = layui.selectInput
44
74
  $ = layui.$;
45
75
 
46
76
  //常规用法
@@ -48,6 +78,49 @@
48
78
  elem: '#new_time'
49
79
  });
50
80
 
81
+ var staff_manage = xmSelect.render({
82
+ el: '#staff_manage_list',
83
+ data: gon.staff_manage,
84
+ filterable: true,
85
+ })
86
+
87
+ var staff_assist = xmSelect.render({
88
+ el: '#staff_assist_list',
89
+ data: gon.staff_manage,
90
+ filterable: true,
91
+ })
92
+ var expert = xmSelect.render({
93
+ el: '#expert_list',
94
+ filterable: true,
95
+ name: 'expert_ids',
96
+ remoteSearch: true,
97
+ remoteMethod: function(val, cb, show){
98
+ if(!val){
99
+ return cb([]);
100
+ }
101
+ request.get('missions/search_edu_user?q=' + val, {}, function (res) {
102
+ if (res.data.length == 0) {
103
+ cb([{value: val, name: val}])
104
+ } else {
105
+ cb(res.data);
106
+ }
107
+
108
+ })
109
+ },
110
+ data: []
111
+ })
112
+
113
+
114
+
115
+ upload.render({
116
+ elem: '#upload_file'
117
+ ,url: '' //此处配置你自己的上传接口即可
118
+ ,accept: 'file' //普通文件
119
+ ,auto: false
120
+ ,done: function(res){
121
+ layer.msg('上传成功');
122
+ }
123
+ });
51
124
 
52
125
  form.render();
53
126
 
@@ -69,15 +142,27 @@
69
142
 
70
143
  //监听提交
71
144
  form.on('submit(data-reset-btn)', function (data) {
145
+ data.field.staff_manage_id = staff_manage.getValue('value');
146
+ data.field.staff_assist_id = staff_assist.getValue('value');
147
+ var expertids = [];
148
+ expert.getValue().forEach(function(d) {
149
+ if (typeof(d.value) == 'number') {
150
+ expertids.push([d.value, d.name]);
151
+ } else {
152
+ expertids.push(['', d.name]);
153
+
154
+ }
155
+ })
156
+ data.field.expert_ids = expertids;
72
157
  request.authPost("missions/activities", data.field, function (res) {
73
158
  if (res.success === false) {
74
- layer.alert(res.msg)
159
+ layer.alert(res.msg)
75
160
  } else {
76
- layer.closeAll(); //关闭所有层
77
- table.reload('activities_table')
161
+ layer.closeAll(); //关闭所有层
162
+ table.reload('activities_table')
78
163
  }
79
164
  })
80
- return false;
81
- });
165
+ return false;
166
+ });
82
167
  });
83
168
  </script>
@@ -23,6 +23,8 @@
23
23
  <% if f.id == @latest&.id && (f.created_at.present? ? (Time.now - f.created_at).to_f/3600 < 24 : false) %>
24
24
  <a href="javascript:;" class="add_key" data-is_latest="<%= f.id == @latest&.id %>" data-id=<%= f.id %> data-flag="<%= f.created_at.present? ? (Time.now - f.created_at).to_f/3600 < 24 : false %>">添加关键人</a>
25
25
  <% end %>
26
+ <br/>
27
+ 评论: <span></span> <a href="javascript:;" class="add_comment" data-id=<%= f.id %>>评论</a>
26
28
  </p>
27
29
  </div>
28
30
  </li>
@@ -68,6 +70,34 @@
68
70
  layer.full(keyindex);
69
71
  });
70
72
  })
73
+ $(".add_comment").on("click", function(e) {
74
+ var data = e.currentTarget.dataset;
75
+ follow_up_id = data.id;
76
+ var content = e.currentTarget.previousElementSibling.innerHTML;
77
+ layer.open({
78
+ title: '评论',
79
+ closeBtn: 0,
80
+ type: 1,
81
+ area: '400px;',
82
+ id: 'LAY_layuipro_new',
83
+ content: '<div class="layui-form" lay-filter="comment" style="padding: 20px;"><textarea autocomplete="off" type="text" name="name" lay-verify="required" class="layui-textarea">' + content + '</textarea></div>' ,
84
+ btn: ['保存', '取消'],
85
+ btn1: function(index, l) {
86
+ if (l.find("textarea").val().trim() == '') {
87
+ layer.msg('内容不能为空')
88
+ return false;
89
+ } else {
90
+ e.currentTarget.previousElementSibling.innerHTML = l.find("textarea").val().trim();
91
+ layer.close(index);
92
+ }
93
+ return false
94
+ },
95
+ btn2: function(index, l) {
96
+ layer.close(index)
97
+ },
98
+ });
99
+
100
+ })
71
101
  function demo(){
72
102
  layer.closeAll()
73
103
  business_id = parent.business_id
@@ -0,0 +1,13 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.value d.id
4
+ if d.department_id.present?
5
+ json.name "#{d.real_name}--(#{d.user_extension.department&.school&.name})[头歌]"
6
+ else
7
+ json.name "#{d.real_name}[头歌]"
8
+ json.extras ""
9
+ end
10
+ end
11
+ end
12
+ json.code 0
13
+ json.msg 'succcess'
@@ -18,13 +18,13 @@
18
18
  <div class="layui-inline">
19
19
  <label class="layui-form-label" style="width: 100px">学校/单位:</label>
20
20
  <div class="layui-input-inline">
21
- <%= idea.school&.name %>
21
+ <%= idea.school_name %>
22
22
  </div>
23
23
  </div>
24
24
  <div class="layui-inline">
25
25
  <label class="layui-form-label" style="width: 100px">院系/部门:</label>
26
26
  <div class="layui-input-inline">
27
- <%= idea.department&.name %>
27
+ <%= idea.department_name %>
28
28
  </div>
29
29
  </div>
30
30
  <div class="layui-inline">
@@ -47,12 +47,33 @@
47
47
  </div>
48
48
  </div>
49
49
  <div class="layui-inline">
50
- <label class="layui-form-label" style="width: 100px">指派人:</label>
50
+ <label class="layui-form-label" style="width: 100px">方案指派人:</label>
51
51
  <div class="layui-input-inline">
52
52
  <%= idea.staff&.user&.real_name %>
53
53
  </div>
54
54
  </div>
55
55
  <br>
56
+ <div class="layui-inline">
57
+ <label class="layui-form-label" style="width: 100px">销售负责人:</label>
58
+ <div class="layui-input-inline">
59
+ <%= idea.sale_staff&.user&.real_name %>
60
+ </div>
61
+ </div>
62
+ <div class="layui-inline">
63
+ <label class="layui-form-label" style="width: 100px">协作者:</label>
64
+ <div class="layui-input-inline">
65
+ <%= idea.assist_staffs.map { |d| d&.user&.real_name }.reject(&:blank?).join("、") %>
66
+ </div>
67
+ </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
+ <br>
56
77
  <div class="layui-inline">
57
78
  <label class="layui-form-label" style="width: 100px">优先级:</label>
58
79
  <div class="layui-input-inline">
@@ -92,7 +113,7 @@
92
113
  </div>
93
114
  <br>
94
115
  <div class="layui-inline">
95
- <label class="layui-form-label" style="width: 100px">项目规模(人):</label>
116
+ <label class="layui-form-label" style="width: 100px">并发规模(人):</label>
96
117
  <div class="layui-input-inline">
97
118
  <%= idea.project.to_i %>
98
119
  </div>
@@ -14,7 +14,7 @@
14
14
  </div>
15
15
  </div>
16
16
  <div class="layui-inline">
17
- <label class="layui-form-label">指派人</label>
17
+ <label class="layui-form-label">方案指派人</label>
18
18
  <div class="layui-input-inline">
19
19
  <%= select_tag "staff_id", options_for_select(@staff_arr, ""), { include_blank: true } %>
20
20
  </div>
@@ -129,7 +129,7 @@
129
129
  },
130
130
  {
131
131
  field: 'staff',
132
- title: '指派人',
132
+ title: '方案指派人',
133
133
  width: 100
134
134
  },
135
135
  {
@@ -155,7 +155,7 @@
155
155
  {
156
156
  field: 'project',
157
157
  width: 150,
158
- title: '项目规模(人)'
158
+ title: '并发规模(人)'
159
159
  },
160
160
  {
161
161
  field: 'money',
@@ -1,7 +1,7 @@
1
1
  json.data do
2
2
  json.array! @ideas do |d|
3
3
  json.(d, :id, :name, :level, :status, :types, :model, :content)
4
- json.school d.school&.name
4
+ json.school d.school_name
5
5
  json.staff d.staff&.user&.real_name
6
6
  json.hardware d.hardware.to_f.round(2)
7
7
  json.project d.project.to_i
@@ -18,13 +18,13 @@
18
18
  <div class="layui-inline">
19
19
  <label class="layui-form-label" style="width: 100px">学校/单位:</label>
20
20
  <div class="layui-input-inline">
21
- <%= idea.school&.name %>
21
+ <%= idea.school_name %>
22
22
  </div>
23
23
  </div>
24
24
  <div class="layui-inline">
25
25
  <label class="layui-form-label" style="width: 100px">院系/部门:</label>
26
26
  <div class="layui-input-inline">
27
- <%= idea.department&.name %>
27
+ <%= idea.department_name %>
28
28
  </div>
29
29
  </div>
30
30
  <div class="layui-inline">
@@ -47,12 +47,33 @@
47
47
  </div>
48
48
  </div>
49
49
  <div class="layui-inline">
50
- <label class="layui-form-label" style="width: 100px">指派人:</label>
50
+ <label class="layui-form-label" style="width: 100px">方案指派人:</label>
51
51
  <div class="layui-input-inline">
52
52
  <%= idea.staff&.user&.real_name %>
53
53
  </div>
54
54
  </div>
55
55
  <br>
56
+ <div class="layui-inline">
57
+ <label class="layui-form-label" style="width: 100px">销售负责人:</label>
58
+ <div class="layui-input-inline">
59
+ <%= idea.sale_staff&.user&.real_name %>
60
+ </div>
61
+ </div>
62
+ <div class="layui-inline">
63
+ <label class="layui-form-label" style="width: 100px">协作者:</label>
64
+ <div class="layui-input-inline">
65
+ <%= idea.assist_staffs.map { |d| d&.user&.real_name }.reject(&:blank?).join("、") %>
66
+ </div>
67
+ </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
+ <br>
56
77
  <div class="layui-inline">
57
78
  <label class="layui-form-label" style="width: 100px">优先级:</label>
58
79
  <div class="layui-input-inline">
@@ -92,7 +113,7 @@
92
113
  </div>
93
114
  <br>
94
115
  <div class="layui-inline">
95
- <label class="layui-form-label" style="width: 100px">项目规模(人):</label>
116
+ <label class="layui-form-label" style="width: 100px">并发规模(人):</label>
96
117
  <div class="layui-input-inline">
97
118
  <%= idea.project.to_i %>
98
119
  </div>
@@ -6,57 +6,79 @@
6
6
  <h2 style="padding-left: 25px">方案信息</h2>
7
7
  </div>
8
8
  <div class="layui-row" style="padding-top: 15px">
9
- <div class="layui-inline">
10
- <label class="layui-form-label required">单位部门</label>
11
- <div class="layui-input-block" id="department" style="width: 300px;"></div>
9
+ <div class="layui-col-md6">
10
+ <labeL class="layui-form-label required">学校/单位:</labeL>
11
+ <div class="layui-input-block">
12
+ <input type="text" name="school_name" autocomplete="off" lay-verify="required" lay-reqtext="学校不能为空" placeholder="请输入学校/单位名称" value="<%= @idea&.school_name %>" class="layui-input">
13
+ </div>
14
+ </div>
15
+ <div class="layui-col-md6">
16
+ <labeL class="layui-form-label">院系/部门:</labeL>
17
+ <div class="layui-input-block">
18
+ <input type="text" name="department_name" autocomplete="off" placeholder="请输入院系/部门名称" value="<%= @idea&. department_name %>" class="layui-input">
19
+ </div>
12
20
  </div>
13
21
  </div>
14
22
  <div class="layui-row" style="padding-top: 15px">
15
23
  <div class="layui-col-md6">
16
24
  <labeL class="layui-form-label">学校负责人:</labeL>
17
25
  <div class="layui-input-block">
18
- <input type="text" name="manager_name" autocomplete="off" placeholder="请输入学校/单位名称" value="<%= @idea&.manager_name %>" class="layui-input">
26
+ <input type="text" name="manager_name" autocomplete="off" placeholder="请输入姓名" value="<%= @idea&.manager_name %>" class="layui-input">
19
27
  </div>
20
28
  </div>
21
29
  <div class="layui-col-md6">
22
30
  <labeL class="layui-form-label">负责人电话:</labeL>
23
31
  <div class="layui-input-block">
24
- <input type="text" name="manager_phone" autocomplete="off" placeholder="请输入院系/部门名称" value="<%= @idea&.manager_phone %>" class="layui-input">
32
+ <input type="text" name="manager_phone" autocomplete="off" placeholder="请输入手机号" value="<%= @idea&.manager_phone %>" class="layui-input">
25
33
  </div>
26
34
  </div>
27
35
  </div>
28
36
  <div class="layui-row" style="padding-top: 15px">
29
37
  <div class="layui-col-md6">
30
- <labeL class="layui-form-label required">项目名称:</labeL>
38
+ <labeL class="layui-form-label required">销售负责人:</labeL>
31
39
  <div class="layui-input-block">
32
- <input type="text" name="name" autocomplete="off" lay-verify="required" lay-reqtext="项目名称不能为空" placeholder="请输入项目名称" value="<%= @idea&.name %>" class="layui-input">
40
+ <div id="sale_staff_id"></div>
33
41
  </div>
34
42
  </div>
35
43
  <div class="layui-col-md6">
36
- <labeL class="layui-form-label required">指派人:</labeL>
44
+ <labeL class="layui-form-label">协作人:</labeL>
37
45
  <div class="layui-input-block">
38
- <%= select_tag "staff_id", options_for_select(EducodeSales::Staff.all.map { |d| [d.user&.real_name, d.id] }, @idea&.staff_id), { 'lay-filter': 'staff_id', include_blank: false } %>
46
+ <div id="assist_staff_ids"></div>
39
47
  </div>
40
48
  </div>
41
49
  </div>
42
50
  <div class="layui-row" style="padding-top: 15px">
43
51
  <div class="layui-col-md6">
44
- <labeL class="layui-form-label required">优先级:</labeL>
52
+ <labeL class="layui-form-label required">项目名称:</labeL>
45
53
  <div class="layui-input-block">
46
- <%= select_tag "level", options_for_select(EducodeSales::Idea.levels.keys, @idea&.level), { 'lay-filter': 'level', include_blank: false } %>
54
+ <input type="text" name="name" autocomplete="off" lay-verify="required" lay-reqtext="项目名称不能为空" placeholder="请输入项目名称" value="<%= @idea&.name %>" class="layui-input">
47
55
  </div>
48
56
  </div>
49
57
  <div class="layui-col-md6">
50
- <labeL class="layui-form-label required">状态:</labeL>
58
+ <labeL class="layui-form-label required">方案指派人:</labeL>
51
59
  <div class="layui-input-block">
52
- <%= select_tag "status", options_for_select(EducodeSales::Idea.statuses.keys, @idea&.status), { 'lay-filter': 'status', include_blank: false } %>
60
+ <div id="new_staff_id"></div>
53
61
  </div>
54
62
  </div>
55
63
  </div>
56
- <div class="layui-row" style="padding-top: 15px">
57
- <div class="layui-col-md6">
58
- <labeL class="layui-form-label required">类型:</labeL>
59
- <div class="layui-input-block">
64
+ <div class="layui-row" style="padding-top: 15px">
65
+ <div class="layui-col-md6">
66
+ <labeL class="layui-form-label required">优先级:</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>
70
+ </div>
71
+ <div class="layui-col-md6">
72
+ <labeL class="layui-form-label required">状态:</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>
76
+ </div>
77
+ </div>
78
+ <div class="layui-row" style="padding-top: 15px">
79
+ <div class="layui-col-md6">
80
+ <labeL class="layui-form-label required">类型:</labeL>
81
+ <div class="layui-input-block">
60
82
  <%= select_tag "types", options_for_select(EducodeSales::Idea.types.keys, @idea&.types), { 'lay-filter': 'types', include_blank: false } %>
61
83
  </div>
62
84
  </div>
@@ -75,17 +97,17 @@
75
97
  </div>
76
98
  </div>
77
99
  <div class="layui-col-md6">
78
- <labeL class="layui-form-label required">项目预算(万):</labeL>
100
+ <labeL class="layui-form-label">项目预算(万):</labeL>
79
101
  <div class="layui-input-block">
80
- <input type="number" name="money" autocomplete="off" lay-verify="required" lay-reqtext="项目预算不能为空" placeholder="请输入项目预算" value="<%= @idea&.money %>" class="layui-input">
102
+ <input type="number" name="money" autocomplete="off" placeholder="请输入项目预算" value="<%= @idea&.money %>" class="layui-input">
81
103
  </div>
82
104
  </div>
83
105
  </div>
84
106
  <div class="layui-row" style="padding-top: 5px">
85
107
  <div class="layui-col-md6">
86
- <labeL class="layui-form-label required">项目规模(人):</labeL>
108
+ <labeL class="layui-form-label">并发规模(人):</labeL>
87
109
  <div class="layui-input-block">
88
- <input type="number" name="project" autocomplete="off" lay-verify="required" lay-reqtext="项目规模不能为空" placeholder="请输入项目规模" value="<%= @idea&.project %>" class="layui-input">
110
+ <input type="number" name="project" autocomplete="off" placeholder="请输入项目规模" value="<%= @idea&.project %>" class="layui-input">
89
111
  </div>
90
112
  </div>
91
113
  <div class="layui-col-md6">
@@ -95,12 +117,28 @@
95
117
  </div>
96
118
  </div>
97
119
  </div>
120
+ <div class="layui-row" style="padding-top: 5px;display: none">
121
+ <div class="layui-col-md6">
122
+ <labeL class="layui-form-label">文件id:</labeL>
123
+ <div class="layui-input-block">
124
+ <input type="text" name="attachment_id" id="attachment_id" autocomplete="off" value="" class="layui-input">
125
+ </div>
126
+ </div>
127
+ </div>
98
128
  <div class="layui-row" style="padding-top: 15px">
99
129
  <labeL class="layui-form-label">反馈情况:</labeL>
100
130
  <div class="layui-input-block">
101
131
  <textarea name="content" placeholder="反馈情况" class="layui-textarea"><%= @idea&.content.to_s %></textarea>
102
132
  </div>
103
133
  </div>
134
+ <div class="layui-row" style="padding-top: 15px">
135
+ <div class="layui-col-md6">
136
+ <labeL class="layui-form-label">方案材料:</labeL>
137
+ <div class="layui-btn-container">
138
+ <button type="button" class="layui-btn layui-btn-normal" id="test8">选择文件</button>
139
+ </div>
140
+ </div>
141
+ </div>
104
142
  <div class="layui-row" style="padding-top: 30px; float: left">
105
143
  <div class="layui-input-block">
106
144
  <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
@@ -110,7 +148,33 @@
110
148
  </div>
111
149
  </div>
112
150
  <script>
113
- layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput', 'xmSelect'], function () {
151
+ function displayFile() {
152
+ var input = document.getElementById("fileInput");
153
+ var fileName = document.getElementById("fileName");
154
+ fileName.innerText = "已选择文件:" + input.files[0].name;
155
+ uploadFile();
156
+ }
157
+
158
+ function uploadFile() {
159
+ var input = document.getElementById("fileInput");
160
+ var file = input.files[0];
161
+ var formData = new FormData();
162
+ formData.append("file", file);
163
+
164
+ var xhr = new XMLHttpRequest();
165
+ xhr.open("POST", "/api/attachments");
166
+ xhr.onload = function() {
167
+ if (xhr.status === 200) {
168
+ console.log(xhr.responseText.id);
169
+ alert("上传成功!");
170
+ } else {
171
+ alert("上传失败!");
172
+ }
173
+ };
174
+ xhr.send(formData);
175
+ }
176
+
177
+ layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput', 'xmSelect', 'upload'], function () {
114
178
  var form = layui.form,
115
179
  layer = layui.layer,
116
180
  request = layui.request,
@@ -119,6 +183,7 @@
119
183
  laytpl = layui.laytpl,
120
184
  request = layui.request,
121
185
  xmSelect = layui.xmSelect,
186
+ upload = layui.upload,
122
187
  $ = layui.$;
123
188
  selectInput = layui.selectInput;
124
189
 
@@ -128,6 +193,45 @@
128
193
  elem: '#new_time'
129
194
  });
130
195
  form.render();
196
+
197
+ upload.render({
198
+ elem: '#test8'
199
+ , url: '/missions/upload_files' //此处配置你自己的上传接口即可
200
+ , auto: true
201
+ , accept: 'file' //普通文件
202
+ , bindAction: '#test9'
203
+ , done: function (res) {
204
+ layer.msg('上传成功');
205
+ $("#attachment_id").val(res.attachment_id)
206
+ // $("#filename").val(res.filename)
207
+ }
208
+ });
209
+
210
+
211
+ var staff_list = xmSelect.render({
212
+ el: '#new_staff_id',
213
+ data: gon.staffs,
214
+ filterable: true,
215
+ radio: true,
216
+ })
217
+
218
+ var sale_staff_list = xmSelect.render({
219
+ el: '#sale_staff_id',
220
+ data: gon.staffs,
221
+ filterable: true,
222
+ radio: true,
223
+ })
224
+ var assist_staff_list = xmSelect.render({
225
+ el: '#assist_staff_ids',
226
+ data: gon.staffs,
227
+ filterable: true,
228
+ multiple:true
229
+ })
230
+
231
+ staff_list.setValue(gon.staff_value)
232
+ sale_staff_list.setValue(gon.sale_staff_value)
233
+ assist_staff_list.setValue(gon.assist_staff_value)
234
+
131
235
  var department_id = gon.value;
132
236
  var department = selectInput.render({
133
237
  elem: '#department',
@@ -157,11 +261,14 @@
157
261
 
158
262
  //监听提交
159
263
  form.on('submit(saveBtn)', function (data) {
160
- if (department.getValue() == "" && department_id == "") {
161
- layer.alert("请选择单位部门")
162
- return false;
163
- } else {
264
+ // if (department.getValue() == "" && department_id == "") {
265
+ // layer.alert("请选择单位部门")
266
+ // return false;
267
+ // } else {
164
268
  data.field.department_id = department.getValue() || department_id;
269
+ data.field.staff_id = staff_list.getValue('valueStr');
270
+ data.field.sale_staff_id = sale_staff_list.getValue('valueStr');
271
+ data.field.assist_staff_ids = assist_staff_list.getValue('valueStr');
165
272
  request.authPut("missions/ideas/" + parent.id, data.field, function (res) {
166
273
  if (res.success == false) {
167
274
  layer.alert(res.msg)
@@ -174,7 +281,7 @@
174
281
  });
175
282
  }
176
283
  })
177
- }
284
+ // }
178
285
  return false;
179
286
  });
180
287