educode_sales 0.5.3 → 0.5.7

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/businesses_controller.rb +3 -0
  3. data/app/controllers/educode_sales/follow_ups_controller.rb +57 -0
  4. data/app/controllers/educode_sales/home_controller.rb +11 -0
  5. data/app/controllers/educode_sales/sale_trends_controller.rb +108 -84
  6. data/app/controllers/educode_sales/teachers_controller.rb +36 -14
  7. data/app/controllers/educode_sales/upload_files_controller.rb +3 -3
  8. data/app/models/educode_sales/teacher.rb +2 -1
  9. data/app/models/educode_sales/teacher_assign_follow.rb +6 -0
  10. data/app/views/educode_sales/activities/index.html.erb +4 -5
  11. data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
  12. data/app/views/educode_sales/businesses/_follows.html.erb +233 -0
  13. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +59 -9
  14. data/app/views/educode_sales/businesses/file.html.erb +2 -4
  15. data/app/views/educode_sales/businesses/index.html.erb +137 -62
  16. data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
  17. data/app/views/educode_sales/businesses/new_follow_record.html.erb +58 -7
  18. data/app/views/educode_sales/businesses/show_follow.html.erb +9 -9
  19. data/app/views/educode_sales/businesses/show_follow_record.html.erb +1 -1
  20. data/app/views/educode_sales/businesses/time_line.html.erb +1 -1
  21. data/app/views/educode_sales/follow_ups/index.json.jbuilder +19 -0
  22. data/app/views/educode_sales/home/sales_place.json.jbuilder +9 -0
  23. data/app/views/educode_sales/places/index.html.erb +14 -4
  24. data/app/views/educode_sales/places/index.json.jbuilder +7 -1
  25. data/app/views/educode_sales/recycles/index.html.erb +1 -1
  26. data/app/views/educode_sales/sale_trends/trends.html.erb +56 -20
  27. data/app/views/educode_sales/sales/operations.html.erb +3 -1
  28. data/app/views/educode_sales/teachers/course_list.json.jbuilder +1 -1
  29. data/app/views/educode_sales/teachers/edit.html.erb +53 -7
  30. data/app/views/educode_sales/teachers/index.html.erb +36 -2
  31. data/app/views/educode_sales/teachers/index.json.jbuilder +4 -1
  32. data/app/views/educode_sales/teachers/new.html.erb +55 -17
  33. data/config/routes.rb +1 -0
  34. data/db/migrate/20211201023750_create_educode_sales_teacher_assign_follows.rb +11 -0
  35. data/lib/educode_sales/version.rb +1 -1
  36. metadata +7 -2
@@ -0,0 +1,233 @@
1
+ <div style="margin: 10px 10px 10px 10px">
2
+ <form class="layui-form layui-form-pane" lay-filter="search_follows">
3
+ <div class="layui-form-item">
4
+ <div class="layui-inline">
5
+ <label class="layui-form-label">所属商机</label>
6
+ <div class="layui-input-inline">
7
+ <input type="text" name="follows_business" autocomplete="off" class="layui-input">
8
+ </div>
9
+ </div>
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label">单位</label>
12
+ <div class="layui-input-inline">
13
+ <input type="text" name="follows_department" autocomplete="off" class="layui-input">
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 "follows_staff_id", options_for_select(@staffs, params[:follows_staff_id]), { 'lay-filter': 'follows_staff_id', 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 "follows_area", options_for_select(EducodeSales::Common.where(clazz: 'area').pluck(:name, :id)), { 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
+ <input type="text" class="layui-input" id="follows_date" name="follows_date" autocomplete="off" placeholder=" - ">
32
+ </div>
33
+ </div>
34
+
35
+ <div class="layui-inline">
36
+ <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_follows_search">重置
37
+ </button>
38
+ <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_follows">搜 索
39
+ </button>
40
+ </div>
41
+ </div>
42
+ </form>
43
+ </div>
44
+ <div class="">
45
+ <table class="layui-hide" id="teachers_table" style="min-height: 300px;" lay-filter="teachers_table"></table>
46
+ </div>
47
+ <script type="text/html" id="toolbarDemo_follows">
48
+ <div class="layui-btn-container">
49
+ <span class="table-label">跟进动态</span>
50
+ </div>
51
+ </script>
52
+ <script type="text/html" id="currentTableBar_follows">
53
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_event">详情</a>
54
+ </script>
55
+ <script type="text/html" id="business">
56
+ <a href="javascript:void(0);" lay-event="business" class="layui-table-link">{{ d.business }}</a>
57
+ </script>
58
+
59
+
60
+ <script>
61
+ layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate'], function () {
62
+ var $ = layui.jquery,
63
+ form = layui.form,
64
+ request = layui.request,
65
+ dropdown = layui.dropdown,
66
+ miniPage = layui.miniPage,
67
+ laydate = layui.laydate;
68
+
69
+ var laydate = layui.laydate;
70
+
71
+ laydate.render({
72
+ elem: '#follows_date',
73
+ range: true
74
+ });
75
+
76
+ table = layui.table;
77
+ table.render({
78
+ elem: '#teachers_table',
79
+ url: '/missions/follow_ups',
80
+ // where: {q: form.val('search_form')},
81
+ toolbar: '#toolbarDemo_follows',
82
+ defaultToolbar: ['filter'],
83
+ cols: [
84
+ [
85
+ {
86
+ field: 'id',
87
+ width: 60,
88
+ title:'序号',type: 'numbers',
89
+ },
90
+ {
91
+ field: 'description',
92
+ title: '最新进展',
93
+ },
94
+ {
95
+ field: 'advise',
96
+ width: 170,
97
+ title: '团队建议',
98
+ },
99
+ {
100
+ field: 'clazz',
101
+ width: 80,
102
+ title: '类型'
103
+ },
104
+ {
105
+ field: 'stage',
106
+ title: '阶段',
107
+ width: 90,
108
+ },
109
+ {
110
+ field: 'key_people',
111
+ width: 90,
112
+ title: '关键人',
113
+
114
+ },
115
+ {
116
+ field: 'staff',
117
+ width: 90,
118
+ title: '跟进人',
119
+ },
120
+ {
121
+ field: 'created_at',
122
+ width: 170,
123
+ title: '跟进时间',
124
+ sort: true,
125
+ },
126
+ {
127
+ field: 'business',
128
+ width: 150,
129
+ title: '所属商机',
130
+ templet:'#business'
131
+ },
132
+ {
133
+ title: '操作',
134
+ width: 80,
135
+ toolbar: '#currentTableBar_follows',
136
+ align: "center",
137
+ fixed: 'right'
138
+ }
139
+ ]
140
+ ],
141
+ limit: 20,
142
+ limits: [10,15,20,30,40,50,60,70,80,90],
143
+ page: true,
144
+ });
145
+
146
+
147
+
148
+
149
+
150
+ var sort = {}, search = {};
151
+ table.on('sort(teachers_table)', function (obj) {
152
+ sort.field = obj.field;
153
+ sort.order = obj.type;
154
+ table.reload('teachers_table', {
155
+ initSort: obj,
156
+ where: {
157
+ sort: sort,
158
+ q: search
159
+ }
160
+ });
161
+ })
162
+
163
+ // 监听搜索操作
164
+ form.on('submit(search_follows)', function (data) {
165
+ search = data.field
166
+ table.reload('teachers_table', {
167
+ page: {
168
+ curr: 1
169
+ },
170
+ where: {q: search, sort: sort}
171
+ }, 'data');
172
+ return false;
173
+ });
174
+
175
+ form.on('submit(reset_follows_search)', function (data) {
176
+ var field = data.field;
177
+ form.val('search_follows', {
178
+ follows_area: "",
179
+ follows_date: "",
180
+ follows_business: "",
181
+ follows_department: "",
182
+ follows_staff_id: ""
183
+ })
184
+ return false;
185
+ });
186
+ table.on('tool(teachers_table)', function (obj) {
187
+ var data = obj.data;
188
+ id = data.id
189
+ if (obj.event === 'add_event') { // 监听添加操作
190
+ var content = miniPage.getHrefContent('/missions/businesses/show_follow_record?follow_up_id=' + data.id);
191
+ var openWH = miniPage.getOpenWidthHeight();
192
+ show_index = layer.open({
193
+ title: '查看商机跟进记录',
194
+ type: 1,
195
+ shade: 0.2,
196
+ maxmin: true,
197
+ shadeClose: true,
198
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
199
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
200
+ content: content
201
+ });
202
+ $(window).on("resize", function () {
203
+ layer.full(index);
204
+ });
205
+ } else if (obj.event === 'business') {
206
+ console.log(data);
207
+ business_id = data.business_id
208
+ business_name = data.business
209
+ content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + data.business_id);
210
+ openWH = miniPage.getOpenWidthHeight();
211
+ index = layer.open({
212
+ title: '商机列表/' + data.business + '的跟进记录',
213
+ type: 1,
214
+ shade: 0.2,
215
+ maxmin: true,
216
+ shadeClose: true,
217
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
218
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
219
+ content: content
220
+ });
221
+ $(window).on("resize", function () {
222
+ layer.full(index);
223
+ });
224
+ }
225
+ });
226
+
227
+ });
228
+ </script>
229
+ <style>
230
+ .layui-table-tool-temp{
231
+ padding-right: 30px; !important;
232
+ }
233
+ </style>
@@ -65,26 +65,26 @@
65
65
  </div>
66
66
  <br>
67
67
  <div class="layui-inline">
68
- <label class="layui-form-label">总额</label>
68
+ <label class="layui-form-label">总额(万)</label>
69
69
  <div class="layui-input-inline">
70
70
  <input name="total_amount" type="number" class="layui-input" value="<%= @follow_up.total_amount %>">
71
71
  </div>
72
72
  </div>
73
73
  <div class="layui-inline">
74
- <label class="layui-form-label">合同额</label>
74
+ <label class="layui-form-label">合同额(万)</label>
75
75
  <div class="layui-input-inline">
76
76
  <input name="actual_amount" type="number" class="layui-input" placeholder="本单位的签单金额" value="<%= @follow_up.actual_amount %>">
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
- <div class="layui-input-inline">
83
- <%= select_tag "place_id", options_for_select(@places, @follow_up.place_id), include_blank: true %>
82
+ <div class="layui-input-inline" style="z-index: 101">
83
+ <div id="edit_place" style="width: 190px;"></div>
84
84
  </div>
85
85
  </div>
86
86
  <div class="layui-inline">
87
- <label class="layui-form-label">渠道分成</label>
87
+ <label class="layui-form-label">渠道分成(万)</label>
88
88
  <div class="layui-input-inline">
89
89
  <input name="divide_amount" class="layui-input" value="<%= @follow_up.divide_amount%>">
90
90
  </div>
@@ -174,6 +174,49 @@
174
174
  }
175
175
  })
176
176
  sales_list.setValue(gon.sales)
177
+ var places_list = xmSelect.render({
178
+ el: '#edit_place',
179
+ remoteSearch: true,
180
+ clickClose: true,
181
+ model: {
182
+ icon: 'hidden',
183
+ label: {
184
+ type: 'text',
185
+ text: {
186
+ //左边拼接的字符
187
+ left: '',
188
+ //右边拼接的字符
189
+ right: '',
190
+ //中间的分隔符
191
+ separator: ', ',
192
+ },
193
+ }
194
+ },
195
+ delay: 1000,
196
+ radio: true,
197
+ paging: true,
198
+ pageRemote: true,
199
+ filterable: true,
200
+ remoteMethod: function (val, cb, show, pageIndex) {
201
+ $.ajax( '/missions/sales_place', {
202
+ method: 'get',
203
+ data: {
204
+ q: val,
205
+ page: pageIndex
206
+ },
207
+ dataType: 'json',
208
+ success: function (res) {
209
+ var data = res.data;
210
+ if (res.code == 0) {
211
+ cb(res.data, res.count);
212
+ } else {
213
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
214
+ }
215
+ }
216
+ })
217
+ }
218
+ })
219
+ places_list.setValue(gon.place)
177
220
 
178
221
  form.render();
179
222
  form.on('submit(update_follow_up)', function (data) {
@@ -181,8 +224,9 @@
181
224
  sales_list.getValue().forEach(function(d) {
182
225
  assign_follow.push(d.value);
183
226
  })
184
- data.field.assign_follow_up = assign_follow;
185
- request.authPut("missions/follow_ups/<%= @follow_up.id%>", data.field, function (res) {
227
+ data.field.assign_follow_up = assign_follow;
228
+ data.field.place_id = places_list.getValue()[0].value;
229
+ request.authPut("missions/follow_ups/<%= @follow_up.id%>", data.field, function (res) {
186
230
  if (res.success == false) {
187
231
  layer.alert(res.msg)
188
232
  } else {
@@ -190,6 +234,7 @@
190
234
  parent.layer.close(parent.layer.getFrameIndex(window.name))
191
235
  parent.table.reload('sale_plan_follow_table')
192
236
  parent.table.reload('businesses_table')
237
+ parent.table.reload('teachers_table')
193
238
  }
194
239
  })
195
240
 
@@ -198,4 +243,9 @@
198
243
  });
199
244
 
200
245
  });
201
- </script>
246
+ </script>
247
+ <style>
248
+ .place_select xm-select > .xm-body{
249
+ width: 300px; !important;
250
+ }
251
+ </style>
@@ -118,16 +118,14 @@
118
118
  var id = data.id
119
119
  name = data.disk_filename
120
120
  folder = gon.folder
121
- console.log(folder);
122
121
  if (obj.event === 'preview') {
123
122
  if (data.content_type.split("/")[0] === "image"){
124
123
  layer.photos({
125
- photos: { "data": [{"src": '/images/educode_sales/' + name}] }
124
+ photos: { "data": [{"src": '/files/educode_sales/' + name}] }
126
125
  ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机
127
126
  });
128
127
  }else if (data.content_type.split("/")[1] === "pdf"){
129
- var pdf = '/images/business_file/' + name;
130
- console.log(pdf);
128
+ var pdf = '/files/educode_sales/' + name;
131
129
  var openWH = miniPage.getOpenWidthHeight();
132
130
  layer.open({
133
131
  title: data.name,
@@ -1,66 +1,80 @@
1
- <div class="min-height-table">
2
- <div style="margin: 10px 10px 10px 10px">
3
- <form class="layui-form layui-form-pane" lay-filter="search_form">
4
- <div class="layui-form-item">
5
- <div class="layui-inline">
6
- <label class="layui-form-label">商机名称</label>
7
- <div class="layui-input-inline">
8
- <input type="text" name="name" autocomplete="off" class="layui-input" value="<%=params[:name] %>">
9
- </div>
10
- </div>
11
- <div class="layui-inline">
12
- <label class="layui-form-label">单位</label>
13
- <div class="layui-input-inline">
14
- <input type="text" name="department" autocomplete="off" class="layui-input">
15
- </div>
16
- </div>
17
- <div class="layui-inline">
18
- <label class="layui-form-label">销售人员</label>
19
- <div class="layui-input-inline">
20
- <%= select_tag "staff_id", options_for_select(@staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true } %>
21
- </div>
22
- </div>
23
- <div class="layui-inline">
24
- <label class="layui-form-label">项目类型</label>
25
- <div class="layui-input-inline">
26
- <%= 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 } %>
27
- </div>
28
- </div>
29
- <div class="layui-inline m-t-10">
30
- <label class="layui-form-label">项目阶段</label>
31
- <div class="layui-input-inline">
32
- <%= select_tag "business_step", options_for_select(EducodeSales::Common.where(clazz: 'business_step').pluck(:name, :id)), { include_blank: true } %>
33
- </div>
34
- </div>
35
- <div class="layui-inline">
36
- <label class="layui-form-label">渠道名称</label>
37
- <div class="layui-input-inline">
38
- <%= select_tag "place_id", options_for_select(EducodeSales::Place.pluck(:name, :id)), { include_blank: true } %>
39
- </div>
40
- </div>
41
- <div class="layui-inline">
42
- <label class="layui-form-label">区域</label>
43
- <div class="layui-input-inline">
44
- <%= select_tag "area", options_for_select(EducodeSales::Common.where(clazz: 'area').pluck(:name, :id)), { include_blank: true } %>
45
- </div>
46
- </div>
47
- <div class="layui-inline">
48
- <label class="layui-form-label">起止时间</label>
49
- <div class="layui-input-inline">
50
- <input type="text" class="layui-input" id="date" name="date" placeholder=" - ">
51
- </div>
52
- </div>
53
- <div class="layui-inline">
54
- <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
55
- </button>
56
- <button type="submit" id="search_bt" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">搜索
57
- </button>
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 follows_div layui-show">
8
+ <!-- 跟进动态-->
9
+ <%=render 'follows' %>
10
+ </div>
11
+ <div class="layui-tab-item businesses_list_div">
12
+ <!--商机列表-->
13
+ <div class="min-height-table">
14
+ <div style="margin: 10px 10px 10px 10px">
15
+ <form class="layui-form layui-form-pane" lay-filter="search_form">
16
+ <div class="layui-form-item">
17
+ <div class="layui-inline">
18
+ <label class="layui-form-label">商机名称</label>
19
+ <div class="layui-input-inline">
20
+ <input type="text" name="name" autocomplete="off" class="layui-input" value="<%=params[:name] %>">
21
+ </div>
22
+ </div>
23
+ <div class="layui-inline">
24
+ <label class="layui-form-label">单位</label>
25
+ <div class="layui-input-inline">
26
+ <input type="text" name="department" autocomplete="off" class="layui-input">
27
+ </div>
28
+ </div>
29
+ <div class="layui-inline">
30
+ <label class="layui-form-label">销售人员</label>
31
+ <div class="layui-input-inline">
32
+ <%= select_tag "staff_id", options_for_select(@staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true } %>
33
+ </div>
34
+ </div>
35
+ <div class="layui-inline">
36
+ <label class="layui-form-label">项目类型</label>
37
+ <div class="layui-input-inline">
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
+ </div>
40
+ </div>
41
+ <div class="layui-inline">
42
+ <label class="layui-form-label">项目阶段</label>
43
+ <div class="layui-input-inline">
44
+ <%= select_tag "business_step", options_for_select(EducodeSales::Common.where(clazz: 'business_step').pluck(:name, :id)), { include_blank: true } %>
45
+ </div>
46
+ </div>
47
+ <div class="layui-inline">
48
+ <label class="layui-form-label">渠道名称</label>
49
+ <div class="layui-input-inline">
50
+ <div id="index_place" style="width: 190px;"></div>
51
+ </div>
52
+ </div>
53
+ <div class="layui-inline">
54
+ <label class="layui-form-label">区域</label>
55
+ <div class="layui-input-inline">
56
+ <%= select_tag "area", options_for_select(EducodeSales::Common.where(clazz: 'area').pluck(:name, :id)), { include_blank: true } %>
57
+ </div>
58
+ </div>
59
+ <div class="layui-inline">
60
+ <label class="layui-form-label">起止时间</label>
61
+ <div class="layui-input-inline">
62
+ <input type="text" class="layui-input" id="date" name="date" placeholder=" - ">
63
+ </div>
64
+ </div>
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" id="search_bt" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">搜索
69
+ </button>
70
+ </div>
71
+ </div>
72
+ </form>
58
73
  </div>
74
+ <table class="layui-hide" id="businesses_table" lay-filter="businesses_table"></table>
59
75
  </div>
60
- </form>
76
+ </div>
61
77
  </div>
62
-
63
- <table class="layui-hide" id="businesses_table" lay-filter="businesses_table"></table>
64
78
  </div>
65
79
  <script type="text/html" id="bussinessBar">
66
80
  <div class="layui-btn-container">
@@ -109,6 +123,59 @@
109
123
  range: true
110
124
  });
111
125
 
126
+ var is_show = <%=params[:name].present? || params[:clazz_id].present? %>
127
+ if(is_show){
128
+ $('.follows_li').removeClass('layui-this');
129
+ $('.follows_div').removeClass('layui-show');
130
+ $('.businesses_list_li').addClass('layui-this');
131
+ $('.businesses_list_div').addClass('layui-show');
132
+ }
133
+
134
+ var index_place_list = xmSelect.render({
135
+ el: '#index_place',
136
+ model: {
137
+ icon: 'hidden',
138
+ label: {
139
+ type: 'text',
140
+ text: {
141
+ //左边拼接的字符
142
+ left: '',
143
+ //右边拼接的字符
144
+ right: '',
145
+ //中间的分隔符
146
+ separator: ', ',
147
+ },
148
+ }
149
+ },
150
+ remoteSearch: true,
151
+ clickClose: true,
152
+ delay: 1000,
153
+ paging: true,
154
+ radio: true,
155
+ pageRemote: true,
156
+ filterable: true,
157
+ remoteMethod: function (val, cb, show, pageIndex) {
158
+ $.ajax( '/missions/sales_place', {
159
+ method: 'get',
160
+ data: {
161
+ q: val,
162
+ page: pageIndex
163
+ },
164
+ dataType: 'json',
165
+ success: function (res) {
166
+ var data = res.data;
167
+ if (res.code == 0) {
168
+ cb(res.data, res.count);
169
+ } else {
170
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
171
+ }
172
+
173
+ }
174
+ })
175
+ }
176
+ })
177
+
178
+
112
179
  table = layui.table;
113
180
  table.render({
114
181
  elem: '#businesses_table',
@@ -194,6 +261,13 @@
194
261
  totalRow: true,
195
262
  sort: true
196
263
  },
264
+ {
265
+ field: 'actual_amount',
266
+ width: 100,
267
+ title: '合同额',
268
+ totalRow: true,
269
+ sort: true
270
+ },
197
271
  {
198
272
  field: 'return_money',
199
273
  width: 100,
@@ -203,7 +277,7 @@
203
277
  },
204
278
  {
205
279
  field: 'place',
206
- width: 80,
280
+ width: 160,
207
281
  title: '渠道'
208
282
  },
209
283
  {
@@ -396,7 +470,8 @@
396
470
 
397
471
  // 监听搜索操作
398
472
  form.on('submit(search_bussiness)', function (data) {
399
- search = data.field
473
+ data.field.place_id = index_place_list.getValue('valueStr');
474
+ search = data.field
400
475
  console.log(search);
401
476
  table.reload('businesses_table', {
402
477
  page: {
@@ -17,6 +17,7 @@ json.data do
17
17
  json.bidded_date d.last_follow_up&.bidded_date.to_s
18
18
  json.signed_date d.last_follow_up&.signed_date.to_s
19
19
  json.total_amount d.last_follow_up&.total_amount
20
+ json.actual_amount d.last_follow_up&.actual_amount
20
21
  json.return_money d.return_money
21
22
  json.place d.last_follow_up&.place&.name
22
23
  json.last_follow_person d.last_follow_up.present? ? d.last_follow_up.staff.user.real_name : EducodeSales::Staff.find(d.staff_id).user.real_name