educode_sales 0.9.67 → 0.9.69

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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/indexlogo.png +0 -0
  3. data/app/assets/javascripts/educode_sales/extent/treeTable.js +235 -0
  4. data/app/controllers/educode_sales/activities_controller.rb +52 -38
  5. data/app/controllers/educode_sales/businesses_controller.rb +1 -1
  6. data/app/controllers/educode_sales/customers_controller.rb +107 -0
  7. data/app/controllers/educode_sales/follow_ups_controller.rb +6 -0
  8. data/app/controllers/educode_sales/operation_plans_controller.rb +8 -4
  9. data/app/controllers/educode_sales/plans_controller.rb +173 -11
  10. data/app/controllers/educode_sales/projects_controller.rb +420 -0
  11. data/app/controllers/educode_sales/recycles_controller.rb +11 -1
  12. data/app/controllers/educode_sales/roles_controller.rb +4 -1
  13. data/app/controllers/educode_sales/teachers_controller.rb +42 -17
  14. data/app/controllers/educode_sales/upload_files_controller.rb +9 -2
  15. data/app/helpers/educode_sales/application_helper.rb +1 -0
  16. data/app/models/educode_sales/activity.rb +4 -0
  17. data/app/models/educode_sales/assessments_setting.rb +2 -2
  18. data/app/models/educode_sales/business.rb +21 -5
  19. data/app/models/educode_sales/business_history.rb +8 -0
  20. data/app/models/educode_sales/business_info.rb +9 -0
  21. data/app/models/educode_sales/permission.rb +2 -1
  22. data/app/models/educode_sales/project.rb +53 -0
  23. data/app/models/educode_sales/role_area.rb +2 -1
  24. data/app/models/educode_sales/sale_plan.rb +3 -1
  25. data/app/models/educode_sales/staff.rb +2 -0
  26. data/app/views/educode_sales/activities/_follows.html.erb +50 -36
  27. data/app/views/educode_sales/activities/_index.html.erb +82 -9
  28. data/app/views/educode_sales/activities/edit.html.erb +25 -68
  29. data/app/views/educode_sales/activities/files.html.erb +157 -0
  30. data/app/views/educode_sales/activities/files.json.jbuilder +13 -0
  31. data/app/views/educode_sales/activities/follow_ups.json.jbuilder +1 -1
  32. data/app/views/educode_sales/activities/index.json.jbuilder +2 -2
  33. data/app/views/educode_sales/activities/new.html.erb +21 -60
  34. data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
  35. data/app/views/educode_sales/activities/upload_file.html.erb +43 -0
  36. data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +3 -0
  37. data/app/views/educode_sales/businesses/index.html.erb +5 -0
  38. data/app/views/educode_sales/businesses/index.json.jbuilder +3 -0
  39. data/app/views/educode_sales/businesses/new.html.erb +1 -1
  40. data/app/views/educode_sales/businesses/time_line.html.erb +9 -5
  41. data/app/views/educode_sales/customers/edit_major.html.erb +872 -0
  42. data/app/views/educode_sales/customers/list.html.erb +602 -0
  43. data/app/views/educode_sales/customers/list.json.jbuilder +33 -0
  44. data/app/views/educode_sales/follow_ups/index.json.jbuilder +2 -2
  45. data/app/views/educode_sales/plans/_yearPlan.html.erb +234 -0
  46. data/app/views/educode_sales/plans/business_infos.json.jbuilder +23 -0
  47. data/app/views/educode_sales/plans/edit_bussiness_info.html.erb +79 -0
  48. data/app/views/educode_sales/plans/edit_bussiness_info_extra.html.erb +260 -0
  49. data/app/views/educode_sales/plans/edit_year_plan.html.erb +237 -0
  50. data/app/views/educode_sales/plans/index.html.erb +8 -0
  51. data/app/views/educode_sales/plans/new_year.html.erb +204 -0
  52. data/app/views/educode_sales/plans/plan_business_infos.json.jbuilder +42 -0
  53. data/app/views/educode_sales/plans/years_plan.json.jbuilder +17 -0
  54. data/app/views/educode_sales/projects/detail.html.erb +269 -0
  55. data/app/views/educode_sales/projects/edit.html.erb +246 -0
  56. data/app/views/educode_sales/projects/history.html.erb +41 -0
  57. data/app/views/educode_sales/projects/index.html.erb +688 -0
  58. data/app/views/educode_sales/projects/index.json.jbuilder +69 -0
  59. data/app/views/educode_sales/recycles/_monthly.html.erb +1 -1
  60. data/app/views/educode_sales/recycles/_yearPlan.html.erb +118 -0
  61. data/app/views/educode_sales/recycles/index.html.erb +26 -22
  62. data/app/views/educode_sales/recycles/monthPlan.json.jbuilder +0 -1
  63. data/app/views/educode_sales/recycles/yearPlan.json.jbuilder +14 -0
  64. data/app/views/educode_sales/teachers/_index.html.erb +17 -1
  65. data/app/views/educode_sales/teachers/index.json.jbuilder +2 -0
  66. data/app/views/layouts/educode_sales/application.html.erb +25 -0
  67. data/config/routes.rb +31 -0
  68. data/db/migrate/20230330141213_create_educode_sales_activity_follow_ups.rb +6 -0
  69. data/db/migrate/20230405074036_add_year_to_sale_plans.rb +38 -0
  70. data/db/migrate/20230411134203_add_realname_to_teacher.rb +5 -0
  71. data/db/migrate/20230412083510_add_p_staff_id_to_businesses.rb +20 -0
  72. data/db/migrate/20230412092000_create_business_histories.rb +10 -0
  73. data/db/migrate/20230413015619_add_permissions_to_projects.rb +11 -0
  74. data/db/migrate/20230413031029_add_pre_time_to_businesses.rb +5 -0
  75. data/lib/educode_sales/version.rb +1 -1
  76. metadata +38 -5
@@ -0,0 +1,234 @@
1
+ <script type="text/html" id="yearPlanToolbar">
2
+ <div class="layui-btn-container">
3
+ <span class="table-label">年计划列表</span>
4
+ <% if can? :create, EducodeSales::SalePlan %>
5
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加年计划</button>
6
+ <% end %>
7
+ </div>
8
+ </script>
9
+ <!--搜索-->
10
+ <div class="layuimini-main min-height-table" id="year_table_wraper">
11
+ <form class="layui-form layui-form-pane" lay-filter="month_plan_search_form">
12
+ <div class="layui-form-item">
13
+ <div class="layui-inline">
14
+ <label class="layui-form-label">人员</label>
15
+ <div class="layui-input-inline large-select">
16
+ <%= select_tag "staff_id", options_for_select(@staffs), { id: 'month_plan_staff_id', include_blank: true} %>
17
+ </div>
18
+ </div>
19
+ <div class="layui-inline">
20
+ <label class="layui-form-label">年度</label>
21
+ <div class="layui-input-inline">
22
+ <input type="text" class="layui-input" id="year_plan_date" autocomplete="off" name="year">
23
+ </div>
24
+ </div>
25
+ <div class="layui-inline">
26
+ <button type="reseet" class="layui-btn layui-btn-primary" lay-submit lay-filter="month_plan_reset_btn">重置
27
+ </button>
28
+ <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="month_plan_seach_btn">检索
29
+ </button>
30
+ </div>
31
+ </div>
32
+ </form>
33
+ <table class="layui-hide" id="yearPlanTable" lay-filter="yearPlanTable"></table>
34
+ </div>
35
+ <script type="text/html" id="currentYearTableBar">
36
+ <% if can? :update, EducodeSales::SalePlan %>
37
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
38
+ <% end %>
39
+ <% if can? :destroy, EducodeSales::SalePlan %>
40
+ <a class="layui-btn layui-btn-danger layui-btn-xs data-count-delete" lay-event="delete">删除</a>
41
+ <% end %>
42
+ </script>
43
+
44
+ <script>
45
+ layui.use(['form', 'table', 'miniPage', 'element', 'rate', 'laydate', 'request'], function () {
46
+ var $ = layui.jquery,
47
+ form = layui.form,
48
+ request = layui.request,
49
+ laydate = layui.laydate,
50
+ table = layui.table,
51
+ rate = layui.rate,
52
+ miniPage = layui.miniPage;
53
+
54
+ laydate.render({
55
+ elem: '#year_plan_date',
56
+ type: 'year'
57
+ });
58
+ table.render({
59
+ elem: '#yearPlanTable',
60
+ url: '/missions/plans/years_plan',
61
+ toolbar: '#yearPlanToolbar',
62
+ defaultToolbar: ['filter'],
63
+ initSort: {
64
+ field: 'updated_at',
65
+ type: 'desc'
66
+ },
67
+ cols: [
68
+ [
69
+ {
70
+ field: 'id',
71
+ width: 60,
72
+ title:'序号',
73
+ type: 'numbers',
74
+ fixed: 'left'
75
+ },
76
+ {
77
+ field: 'staff',
78
+ width: 120,
79
+ title: '姓名',
80
+ fixed: 'left'
81
+ },
82
+ {
83
+ field: 'clazz',
84
+ width: 160,
85
+ title: '目标类型',
86
+ },
87
+ {
88
+ field: 'year',
89
+ width: 120,
90
+ title: '年份'
91
+ },
92
+ {
93
+ field: 'target_money',
94
+ width: 120,
95
+ title: '目标额'
96
+ },
97
+ {
98
+ field: 'plan_money',
99
+ width: 120,
100
+ title: '计划额',
101
+ },
102
+ {
103
+ field: 'minimum_money',
104
+ width: 120,
105
+ title: '保底额',
106
+ },
107
+ {
108
+ field: 'finish_money',
109
+ width: 120,
110
+ title: '完成额',
111
+ },
112
+ {
113
+ field: 'finish_rate',
114
+ width: 120,
115
+ title: '完成率',
116
+ },
117
+ {
118
+ field: 'updated_at',
119
+ width: 170,
120
+ title: '更新时间',
121
+ sort: true,
122
+ },
123
+ {
124
+ title: '操作',
125
+ width: 200,
126
+ toolbar: '#currentYearTableBar',
127
+ align: "center",
128
+ fixed: 'right'
129
+ }
130
+ ]
131
+ ],
132
+
133
+ limit: 20,
134
+ limits: [10,15,20,30,40,50,60,70,80,90],
135
+ page: true,
136
+ });
137
+
138
+ var sort = {}, search = {};
139
+ table.on('sort(yearPlanTable)', function(obj) {
140
+ sort.field = obj.field;
141
+ sort.order = obj.type;
142
+ table.reload('yearPlanTable', {
143
+ initSort: obj,
144
+ where: {
145
+ sort: sort,
146
+ q: search
147
+ }
148
+ });
149
+ })
150
+
151
+ // 监听搜索操作
152
+ form.on('submit(month_plan_seach_btn)', function (data) {
153
+ search = data.field
154
+ table.reload('yearPlanTable', {
155
+ page: {
156
+ curr: 1
157
+ },
158
+ where: {q: search, sort : sort}
159
+ }, 'data');
160
+
161
+ return false;
162
+ });
163
+
164
+ form.on('submit(month_plan_reset_btn)', function(data){
165
+ var field = data.field;
166
+ form.val('month_plan_search_form', { staff_id: '', year: '', month: '', year: ''})
167
+ return false;
168
+ });
169
+
170
+
171
+ table.on('toolbar(yearPlanTable)', function (obj) {
172
+ if (obj.event === 'add') { // 监听添加操作
173
+ var content = miniPage.getHrefContent('/missions/plans/new_year');
174
+ var openWH = miniPage.getOpenWidthHeight();
175
+ from_sales = true
176
+ yindex = layer.open({
177
+ title: '添加年计划',
178
+ type: 1,
179
+ shade: 0.2,
180
+ maxmin: true,
181
+ shadeClose: true,
182
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
183
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
184
+ content: content,
185
+ success: function (layero, index) {
186
+ // 重新渲染弹层中的下拉选择框select
187
+ form.render('select');
188
+ }
189
+ });
190
+ $(window).on("resize", function () {
191
+ layer.full(sindex);
192
+ });
193
+ }
194
+ });
195
+
196
+ table.on('tool(yearPlanTable)', function (obj) {
197
+ var data = obj.data;
198
+ if (obj.event === 'edit') {
199
+ year = data.year;
200
+ content = miniPage.getHrefContent('/missions/plans/edit_year_plan?id=' + data.id);
201
+ openWH = miniPage.getOpenWidthHeight();
202
+ from_sales = true;
203
+ plan_id = data.id
204
+ sindex = layer.open({
205
+ title: '编辑年计划',
206
+ type: 1,
207
+ shade: 0.2,
208
+ maxmin: true,
209
+ shadeClose: true,
210
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
211
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
212
+ content: content
213
+ });
214
+ $(window).on("resize", function () {
215
+ layer.full(sindex);
216
+ });
217
+ return false;
218
+ } else if (obj.event === 'delete') {
219
+ layer.confirm('确定删除' + data.staff + data.clazz, function (index) {
220
+ request.delete('missions/plans/' + data.id, {year: data.year, clazz: data.clazz}, function (res) {
221
+ layer.close(index);
222
+ table.reload("yearPlanTable")
223
+ })
224
+ });
225
+ }
226
+ });
227
+
228
+ });
229
+ </script>
230
+ <style>
231
+ .layui-table-fixed .layui-table-body {
232
+ height: auto!important;
233
+ }
234
+ </style>
@@ -0,0 +1,23 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.id d.id
4
+ json.staff d.staff.user.real_name
5
+ json.clazz EducodeSales::SalePlan::CLAZZ_NAME.invert[d.clazz]
6
+ json.year d.year
7
+ json.business_name d.business.name
8
+ json.department d.business.department&.name
9
+ json.school d.business.department&.school&.name
10
+ json.stage d.business.last_follow_up&.stage&.name
11
+ json.staff_manages d.business.last_follow_up&.assign_follow_ups.present? ? (d.business.last_follow_up.assign_follow_ups.map{ |d| d.staff.user.real_name}.join("、")) : d.business.staff&.user&.real_name
12
+ json.created_at d.created_at.to_s
13
+ json.sale_way d.business.last_follow_up&.place&.name.present? ? '渠道' : '直销'
14
+ json.budget_amount d.business&.last_follow_up ? d.business.last_follow_up.budget_amount.to_f.round(2) : 0
15
+ json.plan_bid_on d.plan_bid_on
16
+ json.plan_sign_on d.plan_sign_on
17
+ json.prepayment_plan_on d.prepayment_plan_on
18
+ json.prepayment_amount d.prepayment_amount
19
+ end
20
+ end
21
+
22
+ json.code 0
23
+ json.count @data.total_count
@@ -0,0 +1,79 @@
1
+ <form class="layui-form " action="">
2
+ <div class="layui-form-item" style="padding: 25px">
3
+ <div class="layui-inline">
4
+ <label class="layui-form-label required" style="width: 180px;">计划投标时间</label>
5
+ <div class="layui-input-inline">
6
+ <input type="text" class="layui-input" id="plan_bid_on" autocomplete="off" name="plan_bid_on">
7
+ </div>
8
+ </div>
9
+ <div class="layui-inline">
10
+ <label class="layui-form-label required" style="width: 180px;">计划签单时间</label>
11
+ <div class="layui-input-inline">
12
+ <input type="text" class="layui-input" id="plan_sign_on" autocomplete="off" name="plan_sign_on">
13
+ </div>
14
+ </div>
15
+ <div class="layui-inline">
16
+ <label class="layui-form-label required" style="width: 180px;">计划回款时间</label>
17
+ <div class="layui-input-inline">
18
+ <input type="text" class="layui-input" id="prepayment_plan_on" autocomplete="off" name="prepayment_plan_on">
19
+ </div>
20
+ </div>
21
+ <div class="layui-inline">
22
+ <label class="layui-form-label required" style="width: 180px;">计划回款额</label>
23
+ <div class="layui-input-inline">
24
+ <input type="text" class="layui-input" autocomplete="off" name="prepayment_amount" value="<%= @business_info.prepayment_amount %>">
25
+ </div>
26
+ </div>
27
+
28
+ <div class="layui-form-item m-t-20">
29
+ <div class="layui-input-block">
30
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="update_bussiness_info">提交</button>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </form>
35
+ <script>
36
+ layui.use(['form', 'table', 'laytpl', 'request', 'laydate'], function () {
37
+ var form = layui.form,
38
+ layer = layui.layer,
39
+ laydate = layui.laydate,
40
+ table = layui.table,
41
+ request = layui.request,
42
+ $ = layui.$;
43
+
44
+ laydate.render({
45
+ elem: '#plan_bid_on',
46
+ value: "<%= @business_info.plan_bid_on.to_s %>",
47
+ type: 'date'
48
+ });
49
+
50
+ laydate.render({
51
+ elem: '#plan_sign_on',
52
+ value: "<%= @business_info.plan_sign_on.to_s %>",
53
+ type: 'date'
54
+ });
55
+ laydate.render({
56
+ elem: '#prepayment_plan_on',
57
+ value: "<%= @business_info.prepayment_plan_on.to_s %>",
58
+ type: 'date'
59
+ });
60
+
61
+
62
+ form.render();
63
+
64
+ form.on('submit(update_bussiness_info)', function (data) {
65
+ request.authPost("missions/plans/update_business_info?id=" + parent.id, data.field, function (res) {
66
+ if (res.success == false) {
67
+ layer.alert(res.msg)
68
+ } else {
69
+ layer.close(parent.sindex);
70
+ parent.table.reload('yearTable', {
71
+ where: {year: parent.year }
72
+ })
73
+ }
74
+ })
75
+ return false;
76
+ });
77
+
78
+ });
79
+ </script>
@@ -0,0 +1,260 @@
1
+ <form class="layui-form ">
2
+ <div class="layui-form-item">
3
+ <div class="layui-inline">
4
+ <label class="layui-form-label required" style="width: 180px;">计划投标时间</label>
5
+ <div class="layui-input-inline">
6
+ <input type="text" class="layui-input" id="plan_bid_on" autocomplete="off" name="plan_bid_on">
7
+ </div>
8
+ </div>
9
+ <div class="layui-inline">
10
+ <label class="layui-form-label required" style="width: 180px;">实际投标时间</label>
11
+ <div class="layui-input-inline">
12
+ <input type="text" class="layui-input" id="actual_bidded_on" autocomplete="off" name="actual_bidded_on">
13
+ </div>
14
+ </div>
15
+ <div class="layui-inline">
16
+ <label class="layui-form-label required" style="width: 180px;">中标额</label>
17
+ <div class="layui-input-inline">
18
+ <input type="text" class="layui-input" autocomplete="off" name="bidded_amount" value="<%= @business_info.bidded_amount %>">
19
+ </div>
20
+ </div>
21
+ </div>
22
+ <div class="layui-form-item">
23
+ <div class="layui-inline">
24
+ <label class="layui-form-label required" style="width: 180px;">计划签单时间</label>
25
+ <div class="layui-input-inline">
26
+ <input type="text" class="layui-input" id="plan_sign_on" autocomplete="off" name="plan_sign_on">
27
+ </div>
28
+ </div>
29
+ <div class="layui-inline">
30
+ <label class="layui-form-label required" style="width: 180px;">实际签单时间</label>
31
+ <div class="layui-input-inline">
32
+ <input type="text" class="layui-input" id="actual_sign_on" autocomplete="off" name="actual_sign_on">
33
+ </div>
34
+ </div>
35
+ <div class="layui-inline">
36
+ <label class="layui-form-label required" style="width: 180px;">签单额</label>
37
+ <div class="layui-input-inline">
38
+ <input type="text" class="layui-input" autocomplete="off" name="sign_amount" value="<%= @business_info.sign_amount %>">
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <div class="layui-form-item">
43
+ <div class="layui-inline">
44
+ <label class="layui-form-label required" style="width: 180px;">计划部署时间</label>
45
+ <div class="layui-input-inline">
46
+ <input type="text" class="layui-input" id="plan_deploy_on" autocomplete="off" name="plan_deploy_on">
47
+ </div>
48
+ </div>
49
+ <div class="layui-inline">
50
+ <label class="layui-form-label required" style="width: 180px;">实际部署时间</label>
51
+ <div class="layui-input-inline">
52
+ <input type="text" class="layui-input" id="actual_deploy_on" autocomplete="off" name="actual_deploy_on">
53
+ </div>
54
+ </div>
55
+ <div class="layui-inline">
56
+ <label class="layui-form-label required" style="width: 180px;">计划验收时间</label>
57
+ <div class="layui-input-inline">
58
+ <input type="text" class="layui-input" id="plan_check_on" autocomplete="off" name="plan_check_on">
59
+ </div>
60
+ </div>
61
+ </div>
62
+ <div class="layui-form-item">
63
+ <div class="layui-inline">
64
+ <label class="layui-form-label required" style="width: 180px;">实际验收时间</label>
65
+ <div class="layui-input-inline">
66
+ <input type="text" class="layui-input" id="actual_check_on" autocomplete="off" name="actual_check_on">
67
+ </div>
68
+ </div>
69
+ <div class="layui-inline">
70
+ <label class="layui-form-label required" style="width: 180px;">预收款计划回款时间</label>
71
+ <div class="layui-input-inline">
72
+ <input type="text" class="layui-input" id="prepayment_plan_on" autocomplete="off" name="prepayment_plan_on">
73
+ </div>
74
+ </div>
75
+ <div class="layui-inline">
76
+ <label class="layui-form-label required" style="width: 180px;">预收款实际回款时间</label>
77
+ <div class="layui-input-inline">
78
+ <input type="text" class="layui-input" id="prepayment_actual_on" autocomplete="off" name="prepayment_actual_on">
79
+ </div>
80
+ </div>
81
+ </div>
82
+ <div class="layui-form-item">
83
+ <div class="layui-inline">
84
+ <label class="layui-form-label required" style="width: 180px;">预收款</label>
85
+ <div class="layui-input-inline">
86
+ <input type="text" class="layui-input" autocomplete="off" name="prepayment_amount" value="<%= @business_info.prepayment_amount %>">
87
+ </div>
88
+ </div>
89
+ <div class="layui-inline">
90
+ <label class="layui-form-label required" style="width: 180px;">验收款计划回款时间</label>
91
+ <div class="layui-input-inline">
92
+ <input type="text" class="layui-input" id="check_fee_plan_on" autocomplete="off" name="check_fee_plan_on">
93
+ </div>
94
+ </div>
95
+ <div class="layui-inline">
96
+ <label class="layui-form-label required" style="width: 180px;">验收款实际回款时间</label>
97
+ <div class="layui-input-inline">
98
+ <input type="text" class="layui-input" id="check_fee_actual_on" autocomplete="off" name="check_fee_actual_on">
99
+ </div>
100
+ </div>
101
+ </div>
102
+ <div class="layui-form-item">
103
+ <div class="layui-inline">
104
+ <label class="layui-form-label required" style="width: 180px;">验收款</label>
105
+ <div class="layui-input-inline">
106
+ <input type="text" class="layui-input" autocomplete="off" name="check_fee" value="<%= @business_info.check_fee %>">
107
+ </div>
108
+ </div>
109
+ <div class="layui-inline">
110
+ <label class="layui-form-label required" style="width: 180px;">质保金计划回款时间</label>
111
+ <div class="layui-input-inline">
112
+ <input type="text" class="layui-input" id="qa_plan_on" autocomplete="off" name="qa_plan_on">
113
+ </div>
114
+ </div>
115
+ <div class="layui-inline">
116
+ <label class="layui-form-label required" style="width: 180px;">质保金实际回款时间</label>
117
+ <div class="layui-input-inline">
118
+ <input type="text" class="layui-input" id="qa_actual_on" autocomplete="off" name="qa_actual_on">
119
+ </div>
120
+ </div>
121
+ </div>
122
+ <div class="layui-form-item">
123
+ <div class="layui-inline">
124
+ <label class="layui-form-label required" style="width: 180px;">质保金</label>
125
+ <div class="layui-input-inline">
126
+ <input type="text" class="layui-input" autocomplete="off" name="qa_amount" value="<%= @business_info.qa_amount %>">
127
+ </div>
128
+ </div>
129
+ <div class="layui-inline">
130
+ <label class="layui-form-label required" style="width: 180px;">应收款</label>
131
+ <div class="layui-input-inline">
132
+ <input type="text" class="layui-input" autocomplete="off" name="account_receivable" value="<%= @business_info.account_receivable %>">
133
+ </div>
134
+ </div>
135
+ <div class="layui-form-item m-t-20">
136
+ <div class="layui-input-block">
137
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="update_bussiness_info">提交</button>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ </form>
142
+ <script>
143
+ layui.use(['form', 'table', 'laytpl', 'request', 'laydate'], function () {
144
+ var form = layui.form,
145
+ layer = layui.layer,
146
+ laydate = layui.laydate,
147
+ table = layui.table,
148
+ request = layui.request,
149
+ $ = layui.$;
150
+
151
+ laydate.render({
152
+ elem: '#plan_bid_on',
153
+ value: "<%= @business_info.plan_bid_on.to_s %>",
154
+ type: 'date'
155
+ });
156
+
157
+ laydate.render({
158
+ elem: '#actual_bidded_on',
159
+ value: "<%= @business_info.actual_bidded_on.to_s %>",
160
+ type: 'date'
161
+ });
162
+
163
+
164
+ laydate.render({
165
+ elem: '#plan_sign_on',
166
+ value: "<%= @business_info.plan_sign_on.to_s %>",
167
+ type: 'date'
168
+ });
169
+
170
+ laydate.render({
171
+ elem: '#actual_sign_on',
172
+ value: "<%= @business_info.actual_sign_on.to_s %>",
173
+ type: 'date'
174
+ });
175
+
176
+ laydate.render({
177
+ elem: '#plan_deploy_on',
178
+ value: "<%= @business_info.plan_deploy_on.to_s %>",
179
+ type: 'date'
180
+ });
181
+
182
+ laydate.render({
183
+ elem: '#actual_deploy_on',
184
+ value: "<%= @business_info.actual_deploy_on.to_s %>",
185
+ type: 'date'
186
+ });
187
+
188
+ laydate.render({
189
+ elem: '#plan_check_on',
190
+ value: "<%= @business_info.plan_check_on.to_s %>",
191
+ type: 'date'
192
+ });
193
+
194
+ laydate.render({
195
+ elem: '#actual_check_on',
196
+ value: "<%= @business_info.actual_check_on.to_s %>",
197
+ type: 'date'
198
+ });
199
+
200
+ laydate.render({
201
+ elem: '#prepayment_plan_on',
202
+ value: "<%= @business_info.prepayment_plan_on.to_s %>",
203
+ type: 'date'
204
+ });
205
+
206
+ laydate.render({
207
+ elem: '#prepayment_actual_on',
208
+ value: "<%= @business_info.prepayment_actual_on.to_s %>",
209
+ type: 'date'
210
+ });
211
+
212
+ laydate.render({
213
+ elem: '#check_fee_plan_on',
214
+ value: "<%= @business_info.check_fee_plan_on.to_s %>",
215
+ type: 'date'
216
+ });
217
+
218
+ laydate.render({
219
+ elem: '#check_fee_actual_on',
220
+ value: "<%= @business_info.check_fee_actual_on.to_s %>",
221
+ type: 'date'
222
+ });
223
+
224
+ laydate.render({
225
+ elem: '#qa_plan_on',
226
+ value: "<%= @business_info.qa_plan_on.to_s %>",
227
+ type: 'date'
228
+ });
229
+
230
+ laydate.render({
231
+ elem: '#qa_actual_on',
232
+ value: "<%= @business_info.qa_actual_on.to_s %>",
233
+ type: 'date'
234
+ });
235
+
236
+ laydate.render({
237
+ elem: '#prepayment_plan_on',
238
+ value: "<%= @business_info.prepayment_plan_on.to_s %>",
239
+ type: 'date'
240
+ });
241
+
242
+
243
+ form.render();
244
+
245
+ form.on('submit(update_bussiness_info)', function (data) {
246
+ request.authPost("missions/plans/update_business_info_extra?id=" + parent.id, data.field, function (res) {
247
+ if (res.success == false) {
248
+ layer.alert(res.msg)
249
+ } else {
250
+ layer.close(parent.sindex);
251
+ parent.table.reload('yearTable', {
252
+ where: {year: parent.year }
253
+ })
254
+ }
255
+ })
256
+ return false;
257
+ });
258
+
259
+ });
260
+ </script>