dev_local
jasder 6 years ago
commit 3b584094c2

@ -1193,6 +1193,54 @@ end
end end
# 添加客户
def customers_list
@search = params[:search]
@province = params[:province]
partner_id = params[:partner_id]
@partner = Partner.find partner_id
@customers = @partner.customers
if @customers.present?
@schools = School.where("(partner_id != ? or partner_id is NULL) and (customer_id is NULL or customer_id not in(#{@customers.map(&:id).join(",")}))", @partner.id)
else
@schools = School.where("partner_id != ? or partner_id is NULL", @partner.id)
end
if params[:search]
@schools = @schools.where("name like ?", "%#{@search}%")
end
if params[:province] && params[:province] != '0'
@schools = @schools.where("province like ?", "%#{@province}%")
end
@limit = 10
@page = params[:page] || 1
@schools_count = @schools.count
@total_pages = (@schools_count / 10.0).ceil
@schools = paginateHelper @schools, @limit
respond_to do |format|
format.js
format.json {
render json: @schools
}
end
end
def add_customers
school_ids = params[:school_ids]
if school_ids.length > 0
school_ids.each do |s|
school = School.where("id = ?",s).first
if school.present?
customer = Customer.new(partner_id: params[:partner_id])
customer.save!
school.update_attributes(:customer_id => customer.id)
end
end
render :json => {status: 1, message: "创建成功!"}
end
end
def all_partners def all_partners
@search = params[:search] @search = params[:search]
@province = params[:province] @province = params[:province]
@ -1232,12 +1280,13 @@ end
school.update_attributes(:partner_id => partner.id) school.update_attributes(:partner_id => partner.id)
end end
end end
render :json => {status: 1, message: "创建成功!"}
end end
end end
# 删除部门管理员 # 删除部门管理员
def delete_depart_member def delete_depart_member
DepartmentMember.where(:department_id => params[:depart], :user_id => params[:user_id]).destroy_all DepartmentMember.where(:department_id => params[:depart], :user_id => params[:user_id]).destroy_all
@ -1283,9 +1332,13 @@ end
else else
User.where(:certification => 1, :partner_id => nil ) User.where(:certification => 1, :partner_id => nil )
end end
@members = paginateHelper @members, 8 @total_pages = (@members.count / 10.0).ceil
@members = paginateHelper @members, 10
respond_to do |format| respond_to do |format|
format.js format.js
format.json {
render json: member_json_data(@members)
}
end end
end end
@ -1298,8 +1351,6 @@ end
user.update_attributes(partner_id: @partner.id) if !@partner.nil? && !user.nil? user.update_attributes(partner_id: @partner.id) if !@partner.nil? && !user.nil?
end end
end end
redirect_to partners_managements_path
end end
# check 部门 identifier是否重复 # check 部门 identifier是否重复
@ -4319,4 +4370,19 @@ end
book.write xls_report book.write xls_report
xls_report.string xls_report.string
end end
def member_json_data mmebers
mmebers.map do |member|
real_name = member.show_real_name
identity = member.identity
school_name = member.school_name
user_phone = member.phone || ""
member.attributes.dup.except("login", "hashed_password", "salt", "status", "mail", "experience", "grade",
"authentication", "professional_certification").merge({real_name: real_name,
identity: identity,
school_name: school_name,
user_phone: user_phone})
end
end
end end

@ -0,0 +1,100 @@
<div class="task-popup" style="width: 572px;">
<div class="task-popup-title clearfix">添加客户</div>
<div class="task_popup_con">
<div class="clearfix mb5 df">
<div class="flex1">
<%= render partial: "managements/customers_search_form" %>
</div>
<a href="javascript:void(0);" onclick="$('#partners_search_form').submit()" class="white-btn mt6 edu-blueback-btn fl ml15 mt55">搜索</a>
</div>
<div class="mb4 clearfix">
<p class="pl10 color-grey-6 clearfix">
<span class="fl ml25">单位</span>
<span class="fr with30">地区</span>
</p>
<div class="edu-back-skyblue clearfix pl10 over280" id="search_customers_list">
<%= render :partial => "partners_list" %>
</div>
<p class="clearfix" style="height: 20px;"><span class="fl lineh-20 none color-red" id="checkNotice"></span></p>
</div>
<li class="clearfix mt10 edu-txt-center">
<a href="javascript:void(0);" class="task-btn mr10" onclick="hideModal()">取消</a>
<a href="javascript:void(0);" class="task-btn task-btn-orange ml20" onclick="submit_add_partner()">确定</a>
</li>
</div>
</div>
<script>
var i = 1; //设置当前页数
var msg_list_loading = false;
$(function() {
$(function() {
var totalpage = <%= @total_pages.to_i %>; //总页数,防止超过总页数继续滚动
var winH = $(window).height(); //页面可视区域高度
$("#search_customers_list").scroll(function() {
if (i < totalpage) { // 当滚动的页数小于总页数的时候,继续加载
var pageH = $(document.body).height();
var scrollT = $(window).scrollTop(); //滚动条top
var aa = (pageH - winH - scrollT) / winH;
console.log(aa);
if ( !msg_list_loading ){
if (aa < 0.01 ) {
get_schools(i+1)
}
}
}
});
});
});
function get_schools(page) {
var msg_list = $('#search_customers_list');
if (msg_list.height() + msg_list[0].scrollTop >= msg_list[0].scrollHeight - 60) {
msg_list_loading = true;
$.getJSON("<%= all_path %>?partner_id=<%= @partner.id %>page="+page+"&search="+$("#partner_name_search").val()+"&province="+$("#partner_province").val(), function(schools) {
if (schools) {
msg_list_loading = false;
var s_html = "";
$.each(schools,function (index,array) {
s_html = s_html+ "<p class='clearfix mt5'>" +
" <span class='fl with70'>" +
" <span>" +
" <input type='checkbox' name='school[id]' value='"+array["school"]["id"]+"' id='school_'"+array["school"]["id"]+"'class='magic-checkbox'>" +
" <label for='school_'"+array["school"]["id"]+">"+array["school"]["name"]+"</label>" +
" </span>\n" +
" </span>\n" +
" <span class='fl with30'>"+array["school"]["province"]+"</span>" +
" </p>"
});
$("#search_customers_list").append(s_html);
i ++;
}
});
}
}
function submit_add_partner(){
if($("input[name='school[]']:checked").length==0){
$("#checkNotice").html("请选择需要添加的内容").removeClass("none");
return;
}else{
var checked_array = [];
$("input[name='school[]']:checked").each(function () {
checked_array.push($(this).val())
});
$.ajax({
url: "/managements/add_customers",
type: 'POST',
data: {school_ids: checked_array, partner_id: <%= @partner.id %>},
success: function (e) {
if(e.status === 1){
hideModal();
window.location.href = "<%= partners_managements_path(partner: @partner.id) %>";
}
}
})
}
}
</script>

@ -0,0 +1,19 @@
<%= form_for "", :url => {:controller=> 'managements', :action => 'customers_list', :partner_id => @partner.id}, :html => {:id => 'partners_search_form'}, :method => "get", :remote => true do |f| %>
<div class="df">
<span class="fl lineh-35">地区:</span>
<select placeholder="请选择地区" name="province" id="partner_province" class="flex1"></select>
</div>
<div class="df mt15">
<span class="fl lineh-35">单位:</span>
<input type="text" class="input-flex-35" name="search" placeholder="请输入单位关键字" id="partner_name_search"/>
</div>
<% end %>
<script>
$(function () {
unitDownOption();
showprovince("partner_province");
})
</script>

@ -14,7 +14,7 @@
</p> </p>
<%= form_for @partner, :url => add_partner_member_managements_path,:html => {:id => 'add_partner_member_form', :remote => true, :method => :post} do |f| %> <%= form_for @partner, :url => add_partner_member_managements_path,:html => {:id => 'add_partner_member_form', :remote => true, :method => :post} do |f| %>
<input type="hidden" value="<%= @partner.id %>" name="partner"> <input type="hidden" value="<%= @partner.id %>" name="partner">
<div id="serch_user_list"> <div class="edu-back-skyblue clearfix pl10 over280" id="member_search_user_list">
<%= render :partial => "partner_member_search_list" %> <%= render :partial => "partner_member_search_list" %>
</div> </div>
<% end %> <% end %>
@ -27,14 +27,14 @@
</div> </div>
</div> </div>
<script> <script>
var i = 1; //设置当前页数 var member_i = 1; //设置当前页数
var msg_list_loading = false; var msg_list_loading = false;
$(function() { $(function() {
var totalpage = <%= @total_pages.to_i %>; //总页数,防止超过总页数继续滚动 var totalpage = <%= @total_pages.to_i %>; //总页数,防止超过总页数继续滚动
var winH = $(window).height(); //页面可视区域高度 var winH = $(window).height(); //页面可视区域高度
$("#search_user_list").scroll(function() { $("#member_search_user_list").scroll(function() {
if (i < totalpage) { // 当滚动的页数小于总页数的时候,继续加载 if (member_i < totalpage) { // 当滚动的页数小于总页数的时候,继续加载
var pageH = $(document.body).height(); var pageH = $(document.body).height();
var scrollT = $(window).scrollTop(); //滚动条top var scrollT = $(window).scrollTop(); //滚动条top
@ -42,7 +42,7 @@
console.log(aa); console.log(aa);
if ( !msg_list_loading ){ if ( !msg_list_loading ){
if (aa < 0.01 ) { if (aa < 0.01 ) {
get_schools(i+1) get_schools(member_i+1)
} }
} }
} }
@ -50,26 +50,26 @@
}); });
function get_schools(page) { function get_schools(page) {
var msg_list = $('#search_user_list'); var msg_list = $('#member_search_user_list');
if (msg_list.height() + msg_list[0].scrollTop >= msg_list[0].scrollHeight - 60) { if (msg_list.height() + msg_list[0].scrollTop >= msg_list[0].scrollHeight - 60) {
msg_list_loading = true; msg_list_loading = true;
$.getJSON("/managements/add_partner_member_box?partner=<%= @partner.id %>&search="+$("#partner_member_search").val()+"&page="+page, function(schools) { $.getJSON("/managements/add_partner_member_box?partner=<%= @partner.id %>&search="+$("#partner_member_search").val()+"&page="+page, function(members) {
if (schools) { if (members) {
msg_list_loading = false; msg_list_loading = false;
var s_html = ""; var s_html = "";
$.each(schools,function (index,array) { $.each(members,function (index,array) {
s_html = s_html+ "<p class='clearfix mt5'>" + s_html = s_html+ "<p class='clearfix'>" +
" <span class='fl with70'>" + " <span class='fl edu-txt-w90'>" +
" <span>" + " <input type='checkbox' name='partner_member[]' value='"+array["id"]+"' id='user_'"+array["id"]+"'class='magic-checkbox'>" +
" <input type='checkbox' name='school[id]' value='"+array["school"]["id"]+"' id='school_'"+array["school"]["id"]+"'class='magic-checkbox'>" + " <label for='user_'"+array["id"]+">"+array["real_name"]+"</label>" +
" <label for='school_'"+array["school"]["id"]+">"+array["school"]["name"]+"</label>" +
" </span>\n" + " </span>\n" +
" </span>\n" + "<span class='fl edu-txt-w90 mt5 edu-txt-center color-grey-6 pointer'>"+array["identity"]+"</span>" +
" <span class='fl with30'>"+array["school"]["province"]+"</span>" + "<span class=\"fl task-hide edu-txt-w200 mt5 edu-txt-left color-grey-9\">"+array["school_name"]+"</span>" +
"<span class=\"fl edu-txt-w100 mt5 edu-txt-center color-grey-9\">"+array["user_phone"]+"</span>" +
" </p>" " </p>"
}); });
$("#search_user_list").append(s_html); $("#member_search_user_list").append(s_html);
i ++; member_i ++;
} }
}); });
} }

@ -0,0 +1,8 @@
<% partner.users.each do |user| %>
<li>
<%= image_tag(url_to_avatar(user)) %>
<a href="javascript:void(0)" class="removeImg">
<i class="iconfont icon-htmal5icon19 color-grey-9"></i>
</a>
</li>
<% end %>

@ -0,0 +1 @@
$("#partner_member_list").html("<%= j(render :partial => "partner_member_list", :locals => {partner: @partner}) %>")

@ -1,5 +1,5 @@
<% if params[:search] %> <% if params[:search] %>
$("#serch_user_list").html("<%= j(render :partial => "partner_member_search_list") %>") $("#member_search_user_list").html("<%= j(render :partial => "partner_member_search_list") %>")
<% else %> <% else %>
var html="<%= escape_javascript(render :partial => "managements/partner_addManage") %>"; var html="<%= escape_javascript(render :partial => "managements/partner_addManage") %>";
pop_box_new(html,572,500); pop_box_new(html,572,500);

@ -0,0 +1,6 @@
<% if params[:search] %>
$("#search_customers_list").html("<%= j(render :partial => "partners_list") %>")
<% else %>
var html="<%= escape_javascript(render :partial => "managements/customer_addUnit",locals: {all_path: customers_list_managements_path}) %>";
pop_box_new(html,572,500);
<% end %>

@ -15,6 +15,7 @@
<% end %> <% end %>
</ul> </ul>
</div> </div>
<% if @current_partner.present? %>
<div class="with75 fl pl20"> <div class="with75 fl pl20">
<div class="edu-back-white"> <div class="edu-back-white">
<div> <div>
@ -24,19 +25,11 @@
<span class="mr45 color-grey-9 fl">管理员</span> <span class="mr45 color-grey-9 fl">管理员</span>
<ul class="manageList"> <ul class="manageList">
<li> <li>
<%= link_to '+', add_partner_member_box_managements_path(:partner => 1), :remote => true, :class => "addManage" %> <%= link_to '+', add_partner_member_box_managements_path(:partner => @current_partner.try(:id)), :remote => true, :class => "addManage" %>
</li> </li>
<div id="partner_member_list" class="fl">
<% unless @current_partner.nil? %> <%= render :partial => "partner_member_list", :locals => {partner: @current_partner} %>
<% @current_partner.users.each_with_index do |user, index| %> </div>
<li>
<%= image_tag(url_to_avatar(user)) %>
<a href="javascript:void(0)" class="removeImg">
<i class="iconfont icon-htmal5icon19 color-grey-9"></i>
</a>
</li>
<% end %>
<% end %>
</ul> </ul>
</div> </div>
</div> </div>
@ -44,7 +37,8 @@
<li class="clearfix tableHead"> <li class="clearfix tableHead">
<span>序号</span> <span>序号</span>
<span>客户名称</span> <span>客户名称</span>
<span><a href="javascript:void(0)" class="color-blue">+添加</a></span> <span><a href="<%= customers_list_managements_path(:partner_id => @current_partner.try(:id)) %>"
data-remote="true" class="color-blue">+添加</a></span>
<span>添加时间</span> <span>添加时间</span>
</li> </li>
<% @current_partner.try(:customers).try(:each) do |customer| %> <% @current_partner.try(:customers).try(:each) do |customer| %>
@ -64,6 +58,8 @@
</div> </div>
</div> </div>
</div> </div>
<% end %>
</div> </div>
</div> </div>
<script> <script>

@ -711,6 +711,8 @@ RedmineApp::Application.routes.draw do ## oauth相关
post 'rename_subject_level' post 'rename_subject_level'
post 'delete_subject_level' post 'delete_subject_level'
post 'update_level_for_subject' post 'update_level_for_subject'
post :add_customers
get :customers_list
end end
end end
# Enable Grack support # Enable Grack support

Loading…
Cancel
Save