educode_sales 0.9.45 → 0.9.46

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 490547dd6002957fc97b49d5944e48b43476036a6f9090689c457ebdf0ad2167
4
- data.tar.gz: e82a58a5dfdc42d2ad607f6c702a643ed3a91227a42771fdada0034b823340e9
3
+ metadata.gz: 7444b7d61d8ff5a5677b765e4d0580a49a3b425de52ffec51e0f4bce62b5d125
4
+ data.tar.gz: 2752a018874ad957014ceff871ee1ef7cb77d8ea0300c0da9a1112344c579d51
5
5
  SHA512:
6
- metadata.gz: 42827e0c0a5c605af5bd4ecd2dd4dd82faed892a6697d3c8c684c6d4dd4a3c96e9c67e94e7fe20eedd68c6545dad6ab5a8e66b02f39a3f2048fa8afa0b994f0c
7
- data.tar.gz: 25005c073e6b4f7bf406d6950907a3fe2a95fb68a14d45ade420a663a31d29795292e168614e61501f48c08e53d8b888ba72adac3fffb05bd299b0121d7a7237
6
+ metadata.gz: 5a4e87f3e97aa8604d7656e36e044943129e6ee19414bc5a2ba2d6d5d1f8150797d9a0cd0e254693f74535cde2d1f9aa9eb27027cdb2f6dfae548c3bd1276435
7
+ data.tar.gz: 05c6ce1070251dd40fb903ef901517228ebaddaa7690d84ac94f141768e6c065c0c31b7785d0eea71dc9aacba98ff548fb699b6a595a5877056c9b2a308c84d4
@@ -33,6 +33,25 @@ module EducodeSales
33
33
  render_success
34
34
  end
35
35
 
36
+ def majors
37
+ department = Department.find(params[:id])
38
+ @majors = department.department_majors
39
+ end
40
+
41
+ def major
42
+ department = Department.find(params[:id])
43
+ major = department.department_majors.new(name: params[:name])
44
+ if major.save
45
+ render_success
46
+ else
47
+ render_failure major
48
+ end
49
+ end
50
+
51
+ def new_major
52
+ render layout: false
53
+ end
54
+
36
55
  def index
37
56
  authorize! :read, Customer
38
57
  respond_to do |format|
@@ -137,6 +156,26 @@ module EducodeSales
137
156
  end
138
157
  end
139
158
 
159
+ def update_major
160
+ department = Department.find(params[:id])
161
+ major = department.department_majors.find(params[:major_id])
162
+ if major.update(name: params[:name])
163
+ render_success
164
+ else
165
+ render_failure major
166
+ end
167
+ end
168
+
169
+ def delete_major
170
+ department = Department.find(params[:id])
171
+ major = department.department_majors.find(params[:major_id])
172
+ if major.destroy
173
+ render_success
174
+ else
175
+ render_failure major
176
+ end
177
+ end
178
+
140
179
  def give
141
180
  common = Common.find_by(clazz: 'staff_type', name: '销售')
142
181
  @staffs = Staff.joins(:user).where(job_type: common.id).map { |d| [d.user.real_name, d.id] }
@@ -16,7 +16,24 @@
16
16
  </div>
17
17
  </div>
18
18
  </form>
19
+ <div>
20
+ <table class="layui-hide" id="major_table" lay-filter="major_table"></table>
21
+ </div>
19
22
  </div>
23
+ <script type="text/html" id="add_major">
24
+ <div class="layui-btn-container">
25
+ <span class="table-label">专业列表</span>
26
+ <% if can? :create_department, EducodeSales::Customer %>
27
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add">添加专业</button>
28
+ <% end %>
29
+ </div>
30
+ </script>
31
+ <script type="text/html" id="tab_major">
32
+ <% if can? :update_department, EducodeSales::Customer %>
33
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
34
+ <a class="layui-btn layui-btn-normal layui-btn-xs layui-btn-danger data-count-delete" lay-event="del">删除</a>
35
+ <% end %>
36
+ </script>
20
37
 
21
38
  <script>
22
39
 
@@ -50,5 +67,106 @@
50
67
  })
51
68
  return false;
52
69
  });
70
+
71
+ table.render({
72
+ elem: '#major_table',
73
+ url: '/missions/customers/majors?id=' + parent.department_id ,
74
+ toolbar: '#add_major',
75
+ defaultToolbar: [],
76
+ cols: [
77
+ [
78
+ {
79
+ field: 'id',
80
+ width: 100,
81
+ title:'序号',type: 'numbers',
82
+ },
83
+ {
84
+ field: 'name',
85
+ title: '专业',
86
+ },
87
+ {
88
+ title: '操作',
89
+ width: 190,
90
+ toolbar: '#tab_major',
91
+ align: "center",
92
+ fixed: 'right'
93
+ }
94
+ ]
95
+ ],
96
+ });
97
+
98
+ table.on('toolbar(major_table)', function (obj) {
99
+ if (obj.event === 'add') {
100
+ department_id = parent.department_id;
101
+ var content = miniPage.getHrefContent('/missions/customers/new_major?id=' + parent.department_id);
102
+ var openWH = miniPage.getOpenWidthHeight();
103
+ new_major_index = layer.open({
104
+ title: '添加专业',
105
+ type: 1,
106
+ shade: 0.2,
107
+ maxmin: true,
108
+ shadeClose: true,
109
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
110
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
111
+ content: content,
112
+ success: function (layero, index) {
113
+ form.render('select');
114
+ }
115
+ });
116
+ $(window).on("resize", function () {
117
+ layer.full(index);
118
+ });
119
+ }
53
120
  });
121
+ table.on('tool(major_table)', function (obj) {
122
+ if (obj.event == 'edit') {
123
+ var index = layer.open({
124
+ title: '修改专业名称',
125
+ closeBtn: 0,
126
+ type: 1,
127
+ area: '400px;',
128
+ id: 'LAY_layuipro',
129
+ content: '<div class="layui-form" lay-filter="edit_data" style="padding: 20px;"><input autocomplete="off" type="text" name="name" lay-verify="required" class="layui-input" value="' + obj.data.name +'"/></div>' ,
130
+ btn: ['保存', '取消'],
131
+ btn1: function(index, l) {
132
+ if (l.find("input").val().trim() == '') {
133
+ layer.msg('名称不能为空')
134
+ return false;
135
+ } else {
136
+ request.authPut("missions/customers/" + parent.department_id + "/update_major", {name: l.find("input").val().trim(), major_id: obj.data.id}, function(res) {
137
+ if (res.success == false) {
138
+ layer.alert(res.msg);
139
+ } else {
140
+ table.reload('major_table');
141
+ parent.table.reload('sale_plan_follow_table');
142
+ layer.close(index);
143
+ }
144
+ })
145
+ }
146
+
147
+ return false
148
+ },
149
+ btn2: function(index, l) {
150
+ layer.close(index)
151
+ }
152
+ });
153
+ } else if (obj.event == 'del') {
154
+ var index = layer.open({
155
+ content: '确定删除该专业 ' + obj.data.name + ' 吗',
156
+ yes: function(index, layero){
157
+ request.authDelete("missions/customers/" + parent.department_id + "/delete_major?major_id=" + obj.data.id, {}, function(res) {
158
+ if (res.success == false) {
159
+ layer.alert(res.msg)
160
+ } else {
161
+ table.reload('major_table');
162
+ parent.table.reload('sale_plan_follow_table');
163
+ layer.close(index);
164
+ }
165
+ })
166
+ }
167
+ });
168
+ }
169
+ })
170
+
171
+ });
54
172
  </script>
@@ -0,0 +1,10 @@
1
+ json.data do
2
+ i = 0
3
+ json.array! @majors do |d|
4
+ json.num i + 1
5
+ json.id d.id
6
+ json.name d.name
7
+ end
8
+ end
9
+ json.code 0
10
+ json.count @majors.size
@@ -0,0 +1,40 @@
1
+ <div class="layuimini-main">
2
+ <form class="layui-form layuimini-form">
3
+ <div class="layui-form-item" style="padding: 25px">
4
+ <div class="layui-form-item" style="padding: 25px">
5
+ <div class="layui-inline">
6
+ <label class="layui-form-label required">专业名称</label>
7
+ <div class="layui-input-block" style="width: 300px;">
8
+ <input type="text" name="name" required lay-verify="required" autocomplete="off" placeholder="请输入" class="layui-input" >
9
+ </div>
10
+ </div>
11
+ </div>
12
+ <div class="layui-form-item" style="padding-left: 130px">
13
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="add_major_btn">提交</button>
14
+ </div>
15
+ </div>
16
+ </form>
17
+ </div>
18
+
19
+ <script>
20
+ layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput', 'transfer'], function () {
21
+ var form = layui.form,
22
+ request = layui.request,
23
+ $ = layui.$;
24
+
25
+ form.on('submit(add_major_btn)', function (data) {
26
+ data.field.school_id = parent.school_id
27
+ request.authPost("missions/customers/"+ parent.department_id +"/major", data.field, function (res) {
28
+ if (res.success === false) {
29
+ layer.alert(res.msg)
30
+ } else {
31
+ layer.close(parent.new_department_index); //关闭所有层
32
+ parent.table.reload('major_table');
33
+ parent.table.reload('sale_plan_follow_table');
34
+ layer.close(parent.new_major_index);
35
+ }
36
+ })
37
+ return false;
38
+ });
39
+ });
40
+ </script>
@@ -4,6 +4,7 @@ json.data do
4
4
  # json.created_at d.created_at.to_s
5
5
  # json.staff d.staff.user.real_name
6
6
  json.department d.name
7
+ json.department_major d.department_majors.pluck(:name).join("、")
7
8
  # json.content d.content
8
9
  # json.is_latest d.id == @latest.id
9
10
  end
@@ -51,6 +51,11 @@
51
51
  {
52
52
  field: 'department',
53
53
  title: '学院/部门',
54
+ width: 200,
55
+ },
56
+ {
57
+ field: 'department_major',
58
+ title: '专业',
54
59
  },
55
60
  {
56
61
  title: '操作',
@@ -131,7 +136,7 @@
131
136
  layer.full(index);
132
137
  });
133
138
  } else if (obj.event === 'edit') {
134
- department_id = obj.data.id
139
+ department_id = obj.data.id;
135
140
  content = miniPage.getHrefContent('/missions/customers/edit_department?id='+ obj.data.id);
136
141
  openWH = miniPage.getOpenWidthHeight();
137
142
  edit_index1 = layer.open({
data/config/routes.rb CHANGED
@@ -38,6 +38,8 @@ EducodeSales::Engine.routes.draw do
38
38
  get :edit_department
39
39
  get :give
40
40
  post :batch_update_school_tags
41
+ get :majors
42
+ get :new_major
41
43
  end
42
44
 
43
45
  member do
@@ -45,6 +47,9 @@ EducodeSales::Engine.routes.draw do
45
47
  put :update_follow_up
46
48
  post :create_department
47
49
  put :update_department
50
+ post :major
51
+ put :update_major
52
+ delete :delete_major
48
53
  end
49
54
  end
50
55
 
@@ -0,0 +1,5 @@
1
+ class AddMobileToTeachers < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :educode_sales_teachers, :mobile, :string
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.9.45'
2
+ VERSION = '0.9.46'
3
3
  end
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.45
4
+ version: 0.9.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-12 00:00:00.000000000 Z
11
+ date: 2023-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -274,9 +274,11 @@ files:
274
274
  - app/views/educode_sales/customers/give.html.erb
275
275
  - app/views/educode_sales/customers/index.html.erb
276
276
  - app/views/educode_sales/customers/index.json.jbuilder
277
+ - app/views/educode_sales/customers/majors.json.jbuilder
277
278
  - app/views/educode_sales/customers/new.html.erb
278
279
  - app/views/educode_sales/customers/new_department.html.erb
279
280
  - app/views/educode_sales/customers/new_follow_record.html.erb
281
+ - app/views/educode_sales/customers/new_major.html.erb
280
282
  - app/views/educode_sales/customers/show_department.json.jbuilder
281
283
  - app/views/educode_sales/customers/show_follow.html.erb
282
284
  - app/views/educode_sales/customers/show_follow.json.jbuilder
@@ -493,6 +495,7 @@ files:
493
495
  - db/migrate/20230117144025_create_educode_sales_business_clazz_changes.rb
494
496
  - db/migrate/20230206080303_create_educode_sales_staff_school_tags.rb
495
497
  - db/migrate/20230209102302_create_educode_sales_staff_permissions.rb
498
+ - db/migrate/20230215141612_add_mobile_to_teachers.rb
496
499
  - lib/educode_sales.rb
497
500
  - lib/educode_sales/engine.rb
498
501
  - lib/educode_sales/version.rb