新版登录和注册
This commit is contained in:
parent
43331b526c
commit
324d14ee92
|
@ -1,3 +1,4 @@
|
|||
#coding=utf-8
|
||||
# Redmine - project management software
|
||||
# Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
#
|
||||
|
@ -148,7 +149,7 @@ class AccountController < ApplicationController
|
|||
return
|
||||
end
|
||||
end
|
||||
render :layout => 'static_base'
|
||||
render :layout => 'login_bigdata'
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -172,12 +173,17 @@ class AccountController < ApplicationController
|
|||
end
|
||||
else
|
||||
us = UsersService.new
|
||||
@user = us.register user_params.merge(:should_confirmation_password => true)
|
||||
@user = us.register user_params.merge(:should_confirmation_password => false)
|
||||
case Setting.self_registration
|
||||
when '1'
|
||||
#register_by_email_activation(@user)
|
||||
unless @user.new_record?
|
||||
redirect_to account_email_valid_path(:mail => @user.mail, :user_id => @user.id)
|
||||
if params[:user][:mail]
|
||||
redirect_to account_email_valid_path(:mail => @user.mail, :user_id => @user.id)
|
||||
else
|
||||
self.logged_user = @user
|
||||
redirect_to my_account_url(:tip=>1)
|
||||
end
|
||||
# flash[:notice] = l(:notice_account_register_done)
|
||||
# render action: 'email_valid', locals: {:mail => @user.mail}
|
||||
end
|
||||
|
@ -267,6 +273,13 @@ class AccountController < ApplicationController
|
|||
req[:message] = faker.errors[:login]
|
||||
end
|
||||
|
||||
if valid_attr.eql?('phone')
|
||||
faker.phone = valid_value
|
||||
faker.valid?
|
||||
req[:valid] = faker.errors[:phone].blank?
|
||||
req[:message] = ""
|
||||
end
|
||||
|
||||
if valid_attr.eql?('mail')
|
||||
faker.mail = valid_value
|
||||
faker.valid?
|
||||
|
@ -278,6 +291,135 @@ class AccountController < ApplicationController
|
|||
render :json => req
|
||||
end
|
||||
|
||||
# 手机号或邮箱是否已注册
|
||||
def valid_register_user
|
||||
req = Hash.new(false)
|
||||
req[:message] = ''
|
||||
|
||||
valid_attr = params[:valid]
|
||||
valid_value = params[:value]
|
||||
|
||||
if valid_attr.eql?('phone')
|
||||
user = User.where(:phone => valid_value).first
|
||||
req[:valid] = !user.nil?
|
||||
req[:message] = user.nil? ? "该手机号未注册" : ""
|
||||
elsif valid_attr.eql?('mail')
|
||||
user = User.where(:mail => valid_value).first
|
||||
req[:valid] = !user.nil?
|
||||
req[:message] = user.nil? ? "该邮箱未注册" : ""
|
||||
end
|
||||
|
||||
render :json => req
|
||||
end
|
||||
|
||||
# 验证码是否有效
|
||||
def valid_verification_code
|
||||
req = Hash.new(false)
|
||||
req[:valid] = false
|
||||
type = params[:type].to_i
|
||||
if type == 1 || type == 2 || params[:phone] =~ /^1\d{10}$/
|
||||
code = VerificationCode.where(:phone => params[:phone], :code => params[:code], :code_type => (params[:type].to_i != 1 && params[:type].to_i != 2) ? 2 : params[:type].to_i ).last
|
||||
else
|
||||
code = VerificationCode.where(:email => params[:phone], :code => params[:code], :code_type => 3).last
|
||||
end
|
||||
req[:valid] = !code.nil? && (Time.now.to_i - code.created_at.to_i) <= 10*60
|
||||
render :json => req
|
||||
end
|
||||
|
||||
# 发送验证码:type 1:注册手机验证码 2:找回密码手机验证码 3:找回密码邮箱验证码
|
||||
def get_verification_code
|
||||
code = %W(0 1 2 3 4 5 6 7 8 9)
|
||||
type = params[:type].to_i
|
||||
req = Hash.new(false)
|
||||
req[:status] = 0
|
||||
if type == 1
|
||||
if User.where(:phone => params[:value]).count > 0
|
||||
req[:status] = 2
|
||||
else
|
||||
begin
|
||||
verification_code = code.sample(6).join
|
||||
status = Trustie::Sms.send(mobile: params[:value], code: verification_code)
|
||||
if status
|
||||
VerificationCode.create(:phone => params[:value], :status => 1, :code_type => 1, :code => verification_code)
|
||||
end
|
||||
rescue => e
|
||||
Rails.logger.error "发送验证码出错: #{e}"
|
||||
end
|
||||
req[:status] = 1
|
||||
end
|
||||
else
|
||||
if params[:value] =~ /^[a-zA-Z0-9]+([._\\]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/
|
||||
if User.where(:mail => params[:value]).count == 0
|
||||
req[:status] = 2
|
||||
else
|
||||
begin
|
||||
verification_code = code.sample(6).join
|
||||
user = User.where(:mail => params[:value]).first
|
||||
token = Token.new(:user => user, :action => "recovery")
|
||||
if token.save
|
||||
Mailer.run.lost_password(token, verification_code)
|
||||
VerificationCode.create(:email => params[:value], :status => 1, :code_type => 3, :code => verification_code)
|
||||
end
|
||||
rescue => e
|
||||
Rails.logger.error "发送验证码出错: #{e}"
|
||||
end
|
||||
req[:status] = 3
|
||||
req[:link] = params[:value].split("@")[1]
|
||||
end
|
||||
elsif params[:value] =~ /^1\d{10}$/
|
||||
if User.where(:phone => params[:value]).count == 0
|
||||
req[:status] = 2
|
||||
else
|
||||
begin
|
||||
verification_code = code.sample(6).join
|
||||
status = Trustie::Sms.send(mobile: params[:value], code: verification_code)
|
||||
if status
|
||||
VerificationCode.create(:phone => params[:value], :status => 1, :code_type => 2, :code => verification_code)
|
||||
end
|
||||
rescue => e
|
||||
Rails.logger.error "发送验证码出错: #{e}"
|
||||
end
|
||||
req[:status] = 1
|
||||
end
|
||||
else
|
||||
req[:status] = 2
|
||||
end
|
||||
|
||||
end
|
||||
render :json => req
|
||||
end
|
||||
|
||||
def reset_psd
|
||||
if request.get?
|
||||
@user = User.where("phone = '#{params[:value]}' or mail = '#{params[:value]}'").first
|
||||
if @user
|
||||
respond_to do |format|
|
||||
format.html { render :layout => "login_bigdata"}
|
||||
end
|
||||
else
|
||||
redirect_to signin_path
|
||||
return
|
||||
end
|
||||
else
|
||||
@user = User.find params[:user]
|
||||
if @user
|
||||
@user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation]
|
||||
if @user.save
|
||||
Token.where(:user_id => @user, :action => "recovery").destroy_all
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
else
|
||||
redirect_to signin_path
|
||||
return
|
||||
end
|
||||
else
|
||||
redirect_to signin_path
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def email_valid
|
||||
begin
|
||||
@mail_type = params[:mail].split("@")[1]
|
||||
|
@ -286,7 +428,7 @@ class AccountController < ApplicationController
|
|||
return render_404
|
||||
end
|
||||
respond_to do |format|
|
||||
format.html { render :layout => "base_mail"}
|
||||
format.html { render :layout => "login_bigdata"}
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
@ -309,14 +451,13 @@ class AccountController < ApplicationController
|
|||
def change_email
|
||||
user = User.find params[:user_id].to_i
|
||||
user.update_attributes(:mail => params[:value])
|
||||
result = {:email => user.mail}
|
||||
result = {:email => user.mail, :email_link => user.mail.split("@")[1]}
|
||||
|
||||
render :json => result
|
||||
end
|
||||
|
||||
def email_activation
|
||||
|
||||
|
||||
end
|
||||
private
|
||||
|
||||
|
@ -456,7 +597,7 @@ class AccountController < ApplicationController
|
|||
logger.warn "Failed login for '#{params[:username]}' from #{request.remote_ip} at #{Time.now.utc}"
|
||||
# flash[:error] = l(:notice_account_invalid_creditentials_new)
|
||||
# render signin_path(:login=>true)
|
||||
render :action => 'email_activation'
|
||||
render :action => 'email_activation',:layout => 'login_bigdata'
|
||||
end
|
||||
|
||||
# Register a user for email activation.
|
||||
|
|
|
@ -837,10 +837,11 @@ class Mailer < ActionMailer::Base
|
|||
:subject => l(:mail_subject_register, Setting.app_title)
|
||||
end
|
||||
|
||||
def lost_password(token)
|
||||
def lost_password(token, code="111111")
|
||||
set_language_if_valid(token.user.language)
|
||||
@login = token.user.try(:login)
|
||||
@token = token
|
||||
@url = url_for(:controller => 'account', :action => 'lost_password', :token => token.value)
|
||||
@code = code
|
||||
mail :to => token.user.mail,
|
||||
:subject => l(:mail_subject_lost_password, Setting.app_title)
|
||||
end
|
||||
|
|
|
@ -244,7 +244,8 @@ class User < Principal
|
|||
LOGIN_LENGTH_LIMIT = 30
|
||||
MAIL_LENGTH_LIMIT = 60
|
||||
|
||||
validates_presence_of :login, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
|
||||
#validates_presence_of :login, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
|
||||
validates_presence_of :login, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
|
||||
validates_uniqueness_of :login, :if => Proc.new { |user| user.login_changed? && user.login.present? }, :case_sensitive => false
|
||||
validates_uniqueness_of :mail, :if => Proc.new { |user| user.mail_changed? && user.mail.present? }, :case_sensitive => false
|
||||
# Login must contain letters, numbers, underscores only
|
||||
|
@ -534,6 +535,7 @@ class User < Principal
|
|||
end
|
||||
|
||||
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
|
||||
VALID_PHONE_REGEX = /^1\d{10}$/
|
||||
# VALID_EMAIL_REGEX = /^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+(\.[0-9a-zA-Z_-]+)+$/
|
||||
# Returns the user that matches provided login and password, or nil
|
||||
#登录,返回用户名与密码匹配的用户
|
||||
|
@ -545,6 +547,8 @@ class User < Principal
|
|||
return nil if login.empty? || password.empty?
|
||||
if (login =~ VALID_EMAIL_REGEX)
|
||||
user = find_by_mail(login)
|
||||
elsif (login =~ VALID_PHONE_REGEX)
|
||||
user = find_by_phone(login)
|
||||
else
|
||||
user = find_by_login(login)
|
||||
end
|
||||
|
@ -778,6 +782,10 @@ class User < Principal
|
|||
where("LOWER(mail) = ?", mail.to_s.downcase).first
|
||||
end
|
||||
|
||||
def self.find_by_phone(phone)
|
||||
where("phone = ?", phone).first
|
||||
end
|
||||
|
||||
# Returns true if the default admin account can no longer be used
|
||||
def self.default_admin_account_changed?
|
||||
!User.active.find_by_login("admin").try(:check_password?, "admin")
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class VerificationCode < ActiveRecord::Base
|
||||
#status:发送状态
|
||||
#code_type:发送类型:1 手机注册 2 手机找回密码 3 邮箱找回密码
|
||||
attr_accessible :code, :code_type, :email, :phone, :status
|
||||
end
|
|
@ -10,14 +10,24 @@ class UsersService
|
|||
#参数约定
|
||||
#成功返回注册后的User实例,失败直接抛异常
|
||||
|
||||
# 生成邀请码
|
||||
CODES = %W(0 1 2 3 4 5 6 7 8 9)
|
||||
def generate_user_login type
|
||||
code = CODES.sample(8).join
|
||||
code = type + code.to_s
|
||||
return generate_user_login(type) if User.where(login: code).present?
|
||||
code
|
||||
end
|
||||
|
||||
def register(params)
|
||||
@user = User.new
|
||||
@user.admin = false
|
||||
@user.register
|
||||
@user.login = params[:login]
|
||||
@user.login = generate_user_login params[:mail] ? 'm' : (params[:phone] ? 'p' : 'w')
|
||||
@user.mail = params[:mail]
|
||||
password = params[:password]
|
||||
password_confirmation = params[:password_confirmation]
|
||||
@user.phone = params[:phone]
|
||||
password = params[:password] || params[:mail_password]
|
||||
password_confirmation = params[:password] || params[:mail_password]
|
||||
should_confirmation_password = params[:should_confirmation_password]
|
||||
if !password.blank? && !password_confirmation.blank? && should_confirmation_password
|
||||
@user.password, @user.password_confirmation = password, password_confirmation
|
||||
|
@ -26,13 +36,17 @@ class UsersService
|
|||
else
|
||||
@user.password = ""
|
||||
end
|
||||
case Setting.self_registration
|
||||
when '1'
|
||||
@user = email_activation_register(@user)
|
||||
when '3'
|
||||
@user = automatically_register(@user)
|
||||
else
|
||||
@user = administrator_manually__register(@user)
|
||||
if params[:mail]
|
||||
case Setting.self_registration
|
||||
when '1'
|
||||
@user = email_activation_register(@user)
|
||||
when '3'
|
||||
@user = automatically_register(@user)
|
||||
else
|
||||
@user = administrator_manually__register(@user)
|
||||
end
|
||||
else
|
||||
@user = automatically_register(@user)
|
||||
end
|
||||
if @user.id != nil
|
||||
ue = @user.user_extensions ||= UserExtensions.new
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
<div class="task-popup" style="width: 550px;">
|
||||
<div class=" task-popup-title clearfix">
|
||||
<h3 class="fl color-grey">提示</h3>
|
||||
<a href="<%= signin_path %>"><i class="fa fa-times-circle font-18 link-color-grey fr mt5"></i></a>
|
||||
</div>
|
||||
<div class="task-popup-content">
|
||||
<p class="task-popup-text-center font-16">您已经成功设置密码,请使用新密码登录!</p>
|
||||
</div>
|
||||
<div class="task-popup-submit clearfix inner-t-c">
|
||||
<a href="<%= signin_path %>" class="task-btn task-btn-green">确定</a>
|
||||
</div>
|
||||
</div>
|
|
@ -1,90 +1,63 @@
|
|||
<div class="new_content">
|
||||
<div class="email_verify">
|
||||
<p class="email_verify_prompt"><span class="icons_email_prompt"></span>您的账号尚未激活,请先进入您的注册邮箱(<span class="c_red" id="user_email_show"><%= @user.mail %></span>),激活您的账号。</p>
|
||||
<button class="email_verify_btn mt30 ml30" onclick = "resendMail('<%= resendmail_path(@user) %>','<%= @user.id %>');">重新发送激活邮件</button>
|
||||
<%#= link_to l(:label_mail_resend), { :controller => 'account', :action => 'resendmail',:user => @user}, :class=>"email_verify_btn mt30 ml30", :remote => true, :method => 'get' %>
|
||||
<ul class="email_prompt_txt ml30 mt30" style="width:580px;margin-bottom: 20px">
|
||||
<p class="email_prompt_p">如果您尚未收到激活邮件,请按照以下步骤操作:</p>
|
||||
<li>检查邮箱的“订阅邮件”、“垃圾邮件”,可能会发现激活邮件。 </li>
|
||||
<li>如果激活邮件已无效,请点击重新发送激活邮件按钮。</li>
|
||||
<li>如果重发注册验证邮箱邮件仍然没有收到,请<a href="javascript:void(0);" class="link-blue" id="change_email">更换邮箱地址</a>,重新发送激活邮件</li>
|
||||
<li>如果您始终无法收到激活邮件,请直接给我们留言:</li>
|
||||
<div class="mt10">
|
||||
<textarea style="resize: none;width: 570px;" class="email_prompt_mes" placeholder="<%= l(:label_email_feedback_tips) %>"></textarea>
|
||||
<div class="c1"></div>
|
||||
<button class="email_sub_btn fr" onclick="leave_email_activation_message('<%= leave_email_activation_message_path(1)%>','<%= @user.id %>');">确定</button>
|
||||
<div class="cl"></div>
|
||||
<% email = @user.mail.split("@")[1] %>
|
||||
|
||||
<div class="new_login">
|
||||
<div class="new-login-header clearfix">
|
||||
<h2 class="fl">激活邮箱账号</h2>
|
||||
<p class="fr mt20 font-16">
|
||||
<%= link_to '首页', home_path %>
|
||||
<span class="ml5 mr5">|</span>
|
||||
<%= link_to "帮助中心", "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168" %>
|
||||
</p>
|
||||
</div>
|
||||
<div class="new_login_con">
|
||||
<div class=" task-email-box">
|
||||
<div class="task-email-box-pd">
|
||||
<div class="alert alert-blue mb20">
|
||||
您的账号尚未激活,请先登录您的邮箱,激活您的账号
|
||||
</div>
|
||||
<span>只需要登录邮箱(<font id="user_email_show"><%= @user.mail %></font>),点击链接激活即可</span><br/>
|
||||
<a href="http://mail.<%= email %>" id="user_email_link" class="new_login_submit mt20 mb20" target="_blank">立即去邮箱激活账号</a>
|
||||
<span class="task-line"></span>
|
||||
<ul class="clearfix">
|
||||
<li class="font-bd">还没有收到激活账号邮件?</li>
|
||||
<li>1:尝试到广告邮件、垃圾邮件目录中找找,邮件可能被误杀了</li>
|
||||
<li>2:再次发送验证邮件</li>
|
||||
<li>3:如果仍然没有收到注册验证邮件,请更换邮件地址</li>
|
||||
<li class="mt20 mb20">
|
||||
<%= link_to '<span class="ml10"></span><span onclick="settime(this);">重新发送激活邮件<span><span class="mr10"></span>'.html_safe, { :controller => 'account', :action => 'resendmail', :user => @user},:id => 'resend_email_a', :class => 'task-btn fl mr20', :remote => true, :method => 'get' %>
|
||||
<a href="javascript:void(0)" class="task-btn fl" id="change_user_email"><span class="ml20"></span>更换邮件地址<span class="mr20"></span></a>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
<li class="mt20 none" id="change_user_email_block">
|
||||
<input type="text" class="new_loggin_users fl" name="user[mail]" id="user_new_email" placeholder="请输入有效的邮箱地址" style="width:325px; padding-left:5px;">
|
||||
<a href="javascript:void(0);" class="fr task-btn-ver" onclick="submit_user_emails('<%= @user.id %>')"><span class="ml5"></span>确定<span class="mr5"></span></a>
|
||||
<p class="color-red fl" id="mail_req" style="display: none;">请输入正确的邮箱</p>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$("#change_email").click(function(){
|
||||
$.ajax({
|
||||
url: "<%= change_user_email_user_path(@user) %>"
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function resendMail(url,id)
|
||||
{
|
||||
$.get(
|
||||
url,
|
||||
{user: id },
|
||||
function (data) {
|
||||
//邮箱@之前用a**b格式显示
|
||||
var mail = data.email;
|
||||
var pos = mail.indexOf("@");
|
||||
var restr = mail.substring(1,pos-1);
|
||||
if( mail.split("@")[0].length > 2 ){
|
||||
mail = mail.replace(restr,"***");
|
||||
}
|
||||
|
||||
$(".email_verify_btn").replaceWith("<p class='email_verify_p mt30 ml30'>激活邮件已发送至您的注册邮箱("+mail+"),请及时登录邮箱进行验证。</p>");
|
||||
}
|
||||
);
|
||||
}
|
||||
function leave_email_activation_message(url,user)
|
||||
{
|
||||
if ($(".email_prompt_mes").val().length == 0){
|
||||
//弹框请他输入文字
|
||||
var htmlvalue = "</br><div style='width:550px;text-align:center'>您的留言不能为空</div></br><div style='width:67px; margin:0 auto; text-align:center'><a href='javascript:void(0);' class='Blue-btn' onclick='hideModal()'>确定</a></div>";
|
||||
pop_up_box(htmlvalue,580,30,50);
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
data: {user: user, text: $(".email_prompt_mes").val() },
|
||||
type: "POST",
|
||||
success: function (data) {
|
||||
var htmlvalue = "<div class='email_tancon'><h2 class='email_tan_title'>您的留言已发送</h2><p class='email_tan_p'>我们将尽快处理好并通知您。感谢您的反馈!</p></div>"
|
||||
pop_up_box(htmlvalue, 580, 30, 45);
|
||||
$(".email_prompt_mes").val("");
|
||||
}
|
||||
});
|
||||
}
|
||||
function regex_mv_name()
|
||||
{
|
||||
var name = $.trim($("#subject").val());
|
||||
if(name.length == 0)
|
||||
{
|
||||
$("#mail_valid_feedback_tip").show();
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#mail_valid_feedback_tip").hide();
|
||||
return true;
|
||||
<script>
|
||||
var countdown = 60;
|
||||
function settime(val) {
|
||||
if (countdown == 0) {
|
||||
val.removeAttribute("disabled");
|
||||
$("#resend_email_a").removeClass("task-btn-grey");
|
||||
val.innerHTML="重新发送激活邮件";
|
||||
countdown = 60;
|
||||
} else {
|
||||
val.setAttribute("disabled", true);
|
||||
$("#resend_email_a").addClass("task-btn-grey");
|
||||
val.innerHTML=countdown + "s后可重新发送";
|
||||
countdown--;
|
||||
if(countdown >= 0){
|
||||
setTimeout(function() {
|
||||
settime(val)
|
||||
},1000)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function f_submit()
|
||||
{
|
||||
if(regex_mv_name()){
|
||||
$("#new_memo").submit();
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</script>
|
|
@ -1,97 +1,55 @@
|
|||
<title><%= l(:label_regiter_account)%></title>
|
||||
|
||||
<% email = @user.mail.split("@")[1] %>
|
||||
<div class="new_content">
|
||||
<div class="email_verify" style="width: 580px;">
|
||||
<p class="fb f18" style="color:green;"><i class="icon-ok mr5 f18"></i>注册成功!
|
||||
<span style=" color:#3b94d6; font-size:12px; font-weight:normal;">请在24小时内点击邮件中的链接来激活您的账号。</span></p>
|
||||
<p class="f14 mt30 mb5">请登录邮箱(<span class="c_red" id="user_email_show"><%= @user.mail %></span>)收取账号激活邮件。<br/>点击邮件中的激活链接,方可使用该账号
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://mail.<%= email %>" class="btn btn-blue" target="_blank"><%= l(:label_check_email)%></a>
|
||||
<%= link_to "<input class='btn btn-blue' type='button' id='btn' value='重新发送激活邮件' onclick='settime(this)' />".html_safe, { :controller => 'account', :action => 'resendmail', :user => @user}, :remote => true, :method => 'get' %>
|
||||
</p>
|
||||
|
||||
<ul class="email_prompt_txt mt30" style="width: 580px;">
|
||||
<p class="email_prompt_p">如果您一直收不到激活邮件,请按照以下步骤操作:</p>
|
||||
<li>请确认是否填写了正确的邮箱地址 </li>
|
||||
<li>请注意查看邮箱中的“订阅邮件”、“垃圾邮件”,可能Trustie的邮件被误杀了</li>
|
||||
<li>请点击重新发送激活邮件按钮</li>
|
||||
<li>如果重发注册验证邮箱邮件仍然没有收到,请<a href="javascript:void(0);" class="link-blue" id="change_email">更换邮箱地址</a>,重新发送激活邮件</li>
|
||||
<li>如果您始终无法收到激活邮件,请直接给我们留言:</li>
|
||||
<div class="mt10">
|
||||
<textarea style="resize: none;width: 570px;" class="email_prompt_mes" placeholder="<%= l(:label_email_feedback_tips) %>"></textarea>
|
||||
<div class="c1"></div>
|
||||
<button class="email_sub_btn fr" onclick="leave_email_activation_message('<%= leave_email_activation_message_path(1)%>','<%= @user.id %>');">确定</button>
|
||||
<div class="cl"></div>
|
||||
<div class="new_login">
|
||||
<div class="new-login-header clearfix">
|
||||
<h2 class="fl">激活邮箱账号</h2>
|
||||
<p class="fr mt20 font-16">
|
||||
<%= link_to '首页', home_path %>
|
||||
<span class="ml5 mr5">|</span>
|
||||
<%= link_to "帮助中心", "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168" %>
|
||||
</p>
|
||||
</div>
|
||||
<div class="new_login_con">
|
||||
<div class=" task-email-box">
|
||||
<div class="task-email-box-pd">
|
||||
<h2 class="color-light-green mb10" ><i class="fa fa-envelope mr10 font-18 "></i>激活邮件已发送</h2>
|
||||
<span>只需要登录邮箱(<font id="user_email_show"><%= @user.mail %></font>),点击链接激活即可</span><br/>
|
||||
<a href="http://mail.<%= email %>" id="user_email_link" class="new_login_submit mt20 mb20" target="_blank">立即去邮箱激活账号</a>
|
||||
<span class="task-line"></span>
|
||||
<ul class="clearfix">
|
||||
<li class="font-bd">还没有收到激活账号邮件?</li>
|
||||
<li>1:尝试到广告邮件、垃圾邮件目录中找找,邮件可能被误杀了</li>
|
||||
<li>2:再次发送验证邮件</li>
|
||||
<li>3:如果仍然没有收到注册验证邮件,请更换邮件地址</li>
|
||||
<li class="mt20 mb20">
|
||||
<%= link_to '<span class="ml10"></span><span onclick="settime(this);">重新发送激活邮件<span><span class="mr10"></span>'.html_safe, { :controller => 'account', :action => 'resendmail', :user => @user},:id => 'resend_email_a', :class => 'task-btn fl mr20', :remote => true, :method => 'get' %>
|
||||
<a href="javascript:void(0)" class="task-btn fl" id="change_user_email"><span class="ml20"></span>更换邮件地址<span class="mr20"></span></a>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
<li class="mt20 none" id="change_user_email_block">
|
||||
<input type="text" class="new_loggin_users fl" name="user[mail]" id="user_new_email" placeholder="请输入有效的邮箱地址" style="width:325px; padding-left:5px;">
|
||||
<a href="javascript:void(0);" class="fr task-btn-ver" onclick="submit_user_emails('<%= @user.id %>')"><span class="ml5"></span>确定<span class="mr5"></span></a>
|
||||
<p class="color-red fl" id="mail_req" style="display: none;">请输入正确的邮箱</p>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$("#change_email").click(function(){
|
||||
$.ajax({
|
||||
url: "<%= change_user_email_user_path(@user) %>"
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function leave_email_activation_message(url,user)
|
||||
{
|
||||
if ($(".email_prompt_mes").val().length == 0){
|
||||
//弹框请他输入文字
|
||||
var htmlvalue = "</br><div style='width:550px;text-align:center'>您的留言不能为空</div></br><div style='width:67px; margin:0 auto; text-align:center'><a href='javascript:void(0);' class='Blue-btn' onclick='hideModal()'>确定</a></div>";
|
||||
pop_up_box(htmlvalue,580,30,50);
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
data: {user: user, text: $(".email_prompt_mes").val() },
|
||||
type: "POST",
|
||||
success: function (data) {
|
||||
var htmlvalue = "<div class='email_tancon'><h2 class='email_tan_title'>您的留言已发送</h2><p class='email_tan_p'>我们将尽快处理好并通知您。感谢您的反馈!</p></div>"
|
||||
pop_up_box(htmlvalue, 580, 30, 50);
|
||||
$(".email_prompt_mes").val("");
|
||||
}
|
||||
});
|
||||
}
|
||||
function regex_mv_name()
|
||||
{
|
||||
var name = $.trim($("#subject").val());
|
||||
if(name.length == 0)
|
||||
{
|
||||
$("#mail_valid_feedback_tip").show();
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#mail_valid_feedback_tip").hide();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function f_submit()
|
||||
{
|
||||
if(regex_mv_name()){
|
||||
$("#new_memo").submit();
|
||||
}
|
||||
}
|
||||
|
||||
var countdown = 60;
|
||||
function settime(val) {
|
||||
if (countdown == 0) {
|
||||
val.removeAttribute("disabled");
|
||||
$("#btn").removeClass("btn-grey");
|
||||
val.value="重新获取验证码";
|
||||
$("#resend_email_a").removeClass("task-btn-grey");
|
||||
val.innerHTML="重新发送激活邮件";
|
||||
countdown = 60;
|
||||
} else {
|
||||
val.setAttribute("disabled", true);
|
||||
$("#btn").addClass("btn-grey");
|
||||
val.value="重新发送(" + countdown + ")";
|
||||
$("#resend_email_a").addClass("task-btn-grey");
|
||||
val.innerHTML=countdown + "s后可重新发送";
|
||||
countdown--;
|
||||
if(countdown >= 0){
|
||||
setTimeout(function() {
|
||||
|
@ -100,51 +58,4 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(function(){
|
||||
var u = navigator.userAgent;
|
||||
if((u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 ||u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1)){
|
||||
$("#scrollsidebar").css("display","none");
|
||||
return;
|
||||
}
|
||||
$(".closeSidebar, .hide-side-bar").click(function(){
|
||||
$(".show_btn").css("display","none");
|
||||
$("#scrollsidebar").css("display","none");
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#button1").click(function(){
|
||||
myTips("反馈成功","success");
|
||||
});
|
||||
|
||||
$("#scrollsidebar").fix({
|
||||
float: 'right', //default.left or right
|
||||
minStatue: cookieget('minStatue'),
|
||||
skin: 'green', //default.gray or blue
|
||||
durationTime: 600
|
||||
});
|
||||
|
||||
$("#subject").keydown(function(){
|
||||
alert("2222");
|
||||
var curLength=$("#subject").val().length;
|
||||
if(curLength>50){
|
||||
var num=$("#subject").val().substr(0,50);
|
||||
$("#subject").val(num);
|
||||
}
|
||||
else{
|
||||
$("#textCount").text(50-$("#subject").val().length)
|
||||
}
|
||||
}).keyup(function(){
|
||||
var curLength=$("#subject").val().length;
|
||||
if(curLength>50){
|
||||
var num=$("#subject").val().substr(0,50);
|
||||
$("#subject").val(num);
|
||||
}
|
||||
else{
|
||||
$("#textCount").text(50-$("#subject").val().length)
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
|
@ -1,164 +1,103 @@
|
|||
<div class="new_register">
|
||||
<div class="new_register_con ">
|
||||
<div class="new_login_box " style="margin-top: 50px;">
|
||||
<% if @message %>
|
||||
<p class="f14 mb5" style=" color:#fff;"><i class="<%= params[:type] == "expired" ? 'icon-bolt mr5' : 'icon-ok mr5' %>"></i><%= h @message %></p>
|
||||
<% end %>
|
||||
<h2 class="new_login_h2">登录
|
||||
<a href="<%= user_join_path %>" class="fr mt5" style="color:#fff;">立即注册</a><div class="cl"></div>
|
||||
</h2>
|
||||
<div class="new_login_form">
|
||||
<%= form_tag(signin_path,:id=>'main_login_form',:method=>'post') do %>
|
||||
<div class="new_login ">
|
||||
<div class="new-login-header clearfix">
|
||||
<h2 class="fl">登录</h2>
|
||||
<p class="fr mt20 font-16">
|
||||
<%= link_to '首页', home_path %>
|
||||
<span class="ml5 mr5">|</span>
|
||||
<%= link_to "帮助中心", "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168" %>
|
||||
</p>
|
||||
</div>
|
||||
<div class="new_login_con">
|
||||
<div class="new_login_box clearfix">
|
||||
<ul class="new_login_weixin clearfix">
|
||||
<p class="" style="text-align: center; font-size: 18px;">登录</p>
|
||||
<!--<li id="login_weixin_nav_1" class="login_weixin_nav_hover" onclick="HoverLi(1);">-->
|
||||
<!--<a href="javascript:void(0);" class="login_weixin_nav_nomal" ><i class="fa fa-qrcode mr10 mt3 font-16"></i>扫码登录</a>-->
|
||||
<!--</li>-->
|
||||
<!--<li id="login_weixin_nav_2" onclick="HoverLi(2);" >-->
|
||||
<!--<a href="javascript:void(0);" class="login_weixin_nav_nomal" ><i class="fa fa-desktop mr10 mt3 "></i>密码登录</a>-->
|
||||
<!--</li>-->
|
||||
</ul>
|
||||
<div id="login_weixin_content_1" class="undis">
|
||||
<div class="code_wxbox" >
|
||||
<div class="wx_img" id="login_QR_img"><img src="images/bigdata/trustie_QR.jpg" width="150" height="150"></div>
|
||||
<div class="wx_img" id="wx_help_img" style="display:none;"><img src="images/bigdata/wx_help.png" width="150" height="150"></div>
|
||||
<div class="wx_0s">
|
||||
<div class="ts mb10">请使用微信扫描上方二维码登录</div>
|
||||
<div class="usehelp">
|
||||
<a href="javascript:void(0)" onmouseover="$('#login_QR_img').hide(); $('#wx_help_img').show();" onmouseout="$('#login_QR_img').show(); $('#wx_help_img').hide();" class="wx_help">使用帮助</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="login_weixin_content_2">
|
||||
<div class="new_login_form">
|
||||
<p class="fr mt10 mb10 font-12">没有账号?
|
||||
<a href="<%= user_join_path %>" class="ml10">立即注册</a>
|
||||
</p>
|
||||
<div class="cl"></div>
|
||||
<%= form_tag(signin_path,:id=>'main_login_form',:method=>'post') do %>
|
||||
<%= back_url_hidden_field_tag %>
|
||||
<ul>
|
||||
<li class="new_loggin_users">
|
||||
<%= text_field_tag 'username', params[:username], :tabindex => '1', :class=>'new_loggin_input',:placeholder=>'请输入邮箱地址或登录名', :onkeypress => "user_name_keypress(event);"%>
|
||||
<i class="fa fa-user font-16 ml10 color-grey"></i>
|
||||
<input type="text" id="name_loggin_input" name="username" class="new_loggin_input" placeholder="手机/邮箱" onkeypress="user_name_keypress(event);">
|
||||
</li>
|
||||
<li class="new_loggin_li new_login_lock">
|
||||
<%= password_field_tag 'password', nil, :tabindex => '2', :class => 'new_loggin_input' , :placeholder => '请输入登录密码', :onkeypress => "user_name_keypress(event);"%>
|
||||
<p class="new_login_error"><%= flash.empty? || flash[:error].nil? ? "" : flash[:error].html_safe %></p>
|
||||
<li class="new_loggin_users">
|
||||
<i class="fa fa-lock font-16 ml10 color-grey"></i>
|
||||
<input type="password" id="password_loggin_input" name="password" class="new_loggin_input" placeholder="请输入密码" onkeypress="user_name_keypress(event);">
|
||||
</li>
|
||||
<p id="login_error_notice" class="color-red mb5" style="margin-top: -15px;"><%= flash.empty? || flash[:error].nil? ? "" : flash[:error].html_safe %></p>
|
||||
<li>
|
||||
<% if Setting.autologin? %>
|
||||
<label><%= check_box_tag 'autologin', 1, true, :tabindex => 4, :class => "new_login_check" %><%= l(:label_stay_logged_in) %></label>
|
||||
<% end %>
|
||||
<a href="<%= lost_password_path %>" class="fr" style="color:#fff;">
|
||||
<a href="<%= lost_password_path %>" class="fr">
|
||||
<% if Setting.lost_password? %>忘记密码<% end %>
|
||||
</a>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:void(0);" id="regist_btn" onclick="loginin();" class ="new_login_submit" id="login_btn" style="text-decoration:none">登录</a>
|
||||
<a href="javascript:void(0);" onclick="loginin();" class ="new_login_submit" id="login_btn" style="text-decoration:none">登录</a>
|
||||
</li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$(".homepageSearchIcon").click(function(){
|
||||
var val=$('input:radio[name="search_type"]:checked').val();
|
||||
if(val==null){
|
||||
$("#navSearchAlert").css({display:"block"});
|
||||
}
|
||||
else {
|
||||
$("#navSearchAlert").css({display:"none"});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function(){
|
||||
$(".navHomepageSearchBoxcontainer").mouseover(function(){
|
||||
$(".navSearchTypeBox").css({display:"block"});
|
||||
});
|
||||
$(".navHomepageSearchBoxcontainer").mouseout(function(){
|
||||
$(".navSearchTypeBox").css({display:"none"});
|
||||
});
|
||||
})
|
||||
$(document).ready(function(){
|
||||
if(<%= @login%>){
|
||||
$("#signUpBox").css({display:"none"});
|
||||
$("#loginInBox").css({display:"block"});
|
||||
}else{
|
||||
$("#signUpBox").css({display:"block"});
|
||||
$("#loginInBox").css({display:"none"});
|
||||
<script type="text/javascript" language="javascript">
|
||||
//登录tab
|
||||
function g(o){
|
||||
return document.getElementById(o);
|
||||
}
|
||||
function HoverLi(n){
|
||||
for(var i=1;i<=2;i++){
|
||||
g('login_weixin_nav_'+i).className='login_weixin_nav_nomal';
|
||||
g('login_weixin_content_'+i).className='undis';
|
||||
}
|
||||
});
|
||||
g('login_weixin_nav_'+n).className='login_weixin_nav_hover';
|
||||
g('login_weixin_content_'+n).className='dis';
|
||||
}
|
||||
|
||||
var $login_correct = false;
|
||||
var $mail_correct = false;
|
||||
var $passwd_correct = false;
|
||||
var $passwd_comfirm_correct = false;
|
||||
jQuery(document).ready(function () {
|
||||
var $login = $('#user_login')
|
||||
var $mail = $('#user_mail')
|
||||
var $password = $('#user_password')
|
||||
var $password_confirmation = $('#user_password_confirmation')
|
||||
$login.blur(function (event) {
|
||||
if ($(this).is('#user_login')) {
|
||||
if (/^[a-zA-Z][a-zA-Z\d]{3,14}$/.test(this.value) == false){
|
||||
$('#login_req').html('<span style="color: #c00202">只能使用英文字母和数字,必须以字母开头,长度不少于4个字符、不超过15个字符</span>');
|
||||
$('#login_req').show();
|
||||
return ;
|
||||
}
|
||||
else{
|
||||
$.get(
|
||||
'<%=account_valid_ajax_path%>',
|
||||
{ valid: "login",
|
||||
value: this.value },
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$('#login_req').html('<span style="color: green">'+data.message+'</span>');
|
||||
$login_correct = true;
|
||||
} else {
|
||||
$('#login_req').html( '<span style="color: #c00202">'+data.message+'</span>');
|
||||
$login_correct = false;
|
||||
}
|
||||
$('#login_req').css('display','block');
|
||||
});
|
||||
}
|
||||
$(function(){
|
||||
<% if flash[:error] || !flash.empty? %>
|
||||
for(var i=1;i<=2;i++){
|
||||
g('login_weixin_nav_'+i).className='login_weixin_nav_nomal';
|
||||
g('login_weixin_content_'+i).className='undis';
|
||||
}
|
||||
g('login_weixin_nav_2').className='login_weixin_nav_hover';
|
||||
g('login_weixin_content_2').className='dis';
|
||||
<% end %>
|
||||
|
||||
}
|
||||
|
||||
// ;
|
||||
$("#name_loggin_input").on('focus', function(){
|
||||
$("#login_error_notice").html("");
|
||||
});
|
||||
|
||||
$mail.blur(function (event) {
|
||||
if (/^[a-zA-Z0-9]+([._\\]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test(this.value) == false){
|
||||
$('#mail_req').html( '<span style="color: #c00202">邮件格式不对</span>').show();
|
||||
$mail_correct = false;
|
||||
return ;
|
||||
}
|
||||
if ($(this).is('#user_mail')) {
|
||||
$.get('<%=account_valid_ajax_path%>',
|
||||
{ valid: "mail",
|
||||
value: this.value },
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$('#mail_req').html( '<span style="color: green">'+data.message+'</span>' );
|
||||
$mail_correct = true;
|
||||
} else {
|
||||
$('#mail_req').html( '<span style="color: #c00202">'+data.message+'</span>' );
|
||||
$mail_correct = false;
|
||||
}
|
||||
$('#mail_req').css('display','block');
|
||||
});
|
||||
}
|
||||
;
|
||||
});
|
||||
$password.blur(function () {
|
||||
var pas1 = document.getElementById("user_password").value;
|
||||
var password_min_length = <%= Setting.password_min_length.to_i %>
|
||||
if (pas1.length >= password_min_length) {
|
||||
$('#passwd_req').html('');
|
||||
$passwd_correct = true;
|
||||
}
|
||||
else {
|
||||
$('#passwd_req').html( '<span style="color: #c00202">'+'<%= l(:setting_password_min_length_limit, :count => Setting.password_min_length.to_i) %>'+'</span>');
|
||||
$passwd_correct = false;
|
||||
}
|
||||
$('#passwd_req').css('display','block');
|
||||
|
||||
|
||||
});
|
||||
$password_confirmation.blur(function () {
|
||||
var password_min_length = <%= Setting.password_min_length.to_i %>
|
||||
var pas1 = document.getElementById("user_password").value;
|
||||
var pas2 = document.getElementById("user_password_confirmation").value;
|
||||
if (pas1.length >= password_min_length && pas1 == pas2 ) {
|
||||
$('#confirm_req').html('<span style="color: green">'+'<%= l(:setting_password_success) %>'+'</span>');
|
||||
$passwd_comfirm_correct = true;
|
||||
}
|
||||
else {
|
||||
$('#confirm_req').html('<span style="color: #c00202">'+'<%= l(:setting_password_error) %>'+'</span>');
|
||||
$passwd_comfirm_correct = false;
|
||||
|
||||
}
|
||||
$('#confirm_req').css('display','block');
|
||||
$("#password_loggin_input").on('focus', function(){
|
||||
$("#login_error_notice").html("");
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -1,26 +1,58 @@
|
|||
<%= stylesheet_link_tag 'css/public'%>
|
||||
|
||||
<div class="homepageContentContainer ">
|
||||
<div class="homepageContent BgBox">
|
||||
<h2 class="BgBox_h2">忘记密码</h2>
|
||||
<div class="BgBoxCon">
|
||||
<%= form_tag(lost_password_path) do %>
|
||||
<p class="BgBoxConP mb5">通过注册邮箱链接重设密码</p>
|
||||
<!--<input type="text" class="NomalInput mb20 " value="请输入登录邮箱地址" />-->
|
||||
<%= text_field_tag 'mail', nil, :size => 40, :placeholder => '请输入注册邮箱',:class=>'NomalInput mb20'%>
|
||||
<% if flash[:error] %>
|
||||
<p class="c_red mt-20 ml5"><%= flash[:error]%></p>
|
||||
<!--<div style="color: red" class="mb5" ><%#= flash[:error]%></div>-->
|
||||
<% elsif flash[:notice] %>
|
||||
<p class="c_green mb5"><%= flash[:notice]%></p>
|
||||
<!--<div style="color: green" class="mb5" ><%#= flash[:notice]%></div>-->
|
||||
<% end %>
|
||||
<div class="LoginButton"><a href="javascript:void(0);" class="c_white db" onclick="$(this).parent().parent().submit();">提交</a></div>
|
||||
<% end %>
|
||||
<div class="new_login">
|
||||
<div class="new-login-header clearfix">
|
||||
<h2 class="fl">找回密码</h2>
|
||||
<p class="fr mt20 font-16">
|
||||
<%= link_to '首页', home_path %>
|
||||
<span class="ml5 mr5">|</span>
|
||||
<%= link_to "帮助中心", "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168" %>
|
||||
</p>
|
||||
</div>
|
||||
<div class="password-header clearfix">
|
||||
<h3 class="fl ml15">找回密码</h3>
|
||||
<span class="fl ml10 mr10 mt3 " >|</span>
|
||||
<span class="fl mt3">第一步:安全验证</span>
|
||||
</div>
|
||||
<div class="new_login_con">
|
||||
<div class="new_login_box clearfix">
|
||||
<div class="new_login_form">
|
||||
<form>
|
||||
<ul>
|
||||
<li class="new_loggin_users">
|
||||
<i class="fa fa-user font-16 ml10 color-grey"></i>
|
||||
<input type="text" class="new_loggin_input" id="lost_psd_input" style="width: 290px;" placeholder="请输入邮箱或手机号">
|
||||
<i class="fa font-16 mr5" id="user_phone_check"></i>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_phone_notice"></p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="pr">
|
||||
<div id="drag" class="drag_slider"></div>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_verification_notice"></p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="pr">
|
||||
<input type="text" class="new_loggin_input_test fl" id="psd_verification_code" placeholder="请输入收到的验证码">
|
||||
<a href="javascript:void(0);" class="fr task-btn-ver" onclick="get_psd_verification_code(this)">获取验证码</a>
|
||||
<input class="none" id="ver_code_type">
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="phone_verification_code_notice"></p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
<p id="send_success_notice" class="none" style="margin-top: -15px; margin-bottom: 10px;"></p>
|
||||
<li><a href="javascript:void(0)" class="new_login_submit" id="lost_psd_next_a" onclick="lost_psd_next();">下一步</a></li>
|
||||
</ul>
|
||||
</form>
|
||||
<div class="new-loggin-other mt50 none">
|
||||
<a href="#"><img src="/images/login/img-weixin.png" width="50" height="50" class="task-img-weixin mb10" alt="微信登录"></a><br/>
|
||||
<span>使用第三方账号</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div><!---BgBox end--->
|
||||
</div><!---homepageContentContainer end--->
|
||||
</body>
|
||||
</html>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('#drag').drag();
|
||||
</script>
|
|
@ -0,0 +1,42 @@
|
|||
<div class="new_login">
|
||||
<div class="new-login-header clearfix">
|
||||
<h2 class="fl">找回密码</h2>
|
||||
<p class="fr mt20 font-16">
|
||||
<%= link_to '首页', home_path %>
|
||||
<span class="ml5 mr5">|</span>
|
||||
<%= link_to "帮助中心", "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168" %>
|
||||
</p>
|
||||
</div>
|
||||
<div class="password-header clearfix">
|
||||
<h3 class="fl ml15">找回密码</h3>
|
||||
<span class="fl ml10 mr10 mt3">|</span>
|
||||
<span class="fl mt3">第二步:设置新密码</span>
|
||||
</div>
|
||||
<div class="new_login_con">
|
||||
<div class="new_login_box clearfix">
|
||||
<div class="new_login_form">
|
||||
<%= form_tag(account_reset_psd_path, :remote => true, :method => 'post') do %>
|
||||
<ul>
|
||||
<input type="hidden" name="user" value="<%= @user.id %>">
|
||||
<input type="hidden" id="password_min_length" value="<%= Setting.password_min_length.to_i %>">
|
||||
<li class="new_loggin_users">
|
||||
<i class="fa fa-lock font-16 ml10 color-grey"></i>
|
||||
<input type="password" class="new_loggin_input" name="new_password" id="new_password" placeholder="设置新密码">
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="new_password_notice">至少8位由字母或特殊符号和数字结合</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="new_loggin_users">
|
||||
<i class="fa fa-lock font-16 ml10 color-grey"></i>
|
||||
<input type="password" class="new_loggin_input" name="new_password_confirmation" id="new_password_confirmation" placeholder="确认新密码">
|
||||
<div class="new-login-error none" style="display: none;">
|
||||
<p id="new_password_confirmation_notice">两次密码输入不一致</p>
|
||||
</div>
|
||||
</li>
|
||||
<li><a href="javascript:void(0)" class="new_login_submit" id="new_psd_submit">完成</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,2 @@
|
|||
var htmlvalue = "<%= j(render :partial => 'account/reset_psd_notice_box') %>";
|
||||
pop_box_new(htmlvalue, 552, 500);
|
|
@ -1,165 +1,280 @@
|
|||
<div class="new_register">
|
||||
<div class="new_register_con ">
|
||||
<div class="new_login_box ">
|
||||
<h2 class="new_login_h2">注册<a href="<%= signin_path %>" class="fr mt5">已有账号 请登录</a><div class="cl"></div></h2>
|
||||
<div class="new_login_form">
|
||||
<%= form_for :user, :url => register_path,:method=>'post', :html => {:id=>'main_reg_form'} do |f| %>
|
||||
<%= error_messages_for 'user' %>
|
||||
<ul >
|
||||
<li class="new_register_li">
|
||||
<%= f.text_field :mail, :size => 25, :class => 'new_register_input' , :placeholder => "请输入邮箱地址"%>
|
||||
<p class="new_login_error" id="mail_req" style="display: none">请输入正确的邮箱</p>
|
||||
</li>
|
||||
<li class="new_register_li">
|
||||
<%= f.password_field :password, :placeholder => "请输入密码", :class => 'new_register_input' %>
|
||||
<p class="new_login_error" id="passwd_req" style="display: none">请输入8-16位密码,区分大小写,不能使用空格!</p>
|
||||
</li>
|
||||
<li class="new_register_li">
|
||||
<%= f.password_field :password_confirmation, :placeholder => "请再次输入密码", :class=> 'new_register_input' %>
|
||||
<p class="new_login_error" id="confirm_req" style="display: none">两次密码不一致!</p>
|
||||
</li>
|
||||
<li class="new_register_li">
|
||||
<%= f.text_field :login, :placeholder => "请输入用户登录名", :class => 'new_register_input'%>
|
||||
<p class="new_login_error" id="login_req" style="display: none">只能使用英文字母和数字,必须以字母开头,长度不少于4个字符、不超过15个字符</p>
|
||||
</li>
|
||||
<li>
|
||||
<label><input type="checkbox" checked id="read_and_confirm" onchange="changeRegisterBtn(this);" class=" new_login_check">我已阅读并接受<a href="<%= agreement_path %>" >Trustie服务协议条款</a></label>
|
||||
</li>
|
||||
<li>
|
||||
<div id="loginUpButton">
|
||||
<a href="javascript:void(0);" id="regist_btn" onclick="register();" class ="new_login_submit" style="text-decoration:none;">注册</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<div class="new_login ">
|
||||
<div class="new-login-header clearfix">
|
||||
<h2 class="fl">注册</h2>
|
||||
<p class="fr mt20 font-16">
|
||||
<%= link_to '首页', home_path %>
|
||||
<span class="ml5 mr5">|</span>
|
||||
<%= link_to "帮助中心", "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168" %>
|
||||
</p>
|
||||
</div>
|
||||
<div class="new_login_con">
|
||||
<div class="new_login_box clearfix">
|
||||
<ul class="new_login_weixin fl" >
|
||||
<li id="login_weixin_nav_1" class="login_weixin_nav_hover" onclick="HoverLi(1);">
|
||||
<a href="javascript:void(0);" class="login_weixin_nav_nomal"><i class="fa fa-mobile-phone font-16 mr10 mt3"></i>手机注册</a>
|
||||
</li>
|
||||
<li id="login_weixin_nav_2" onclick="HoverLi(2);" >
|
||||
<a href="javascript:void(0);" class="login_weixin_nav_nomal"><i class="fa fa-envelope-o font-16 mr10 mt3"></i>邮箱注册</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div id="login_weixin_content_1">
|
||||
<div class="new_login_form">
|
||||
<p class="fr mt10 mb10 font-12">已有账号?<a href="<%= signin_path %>" class="ml10">直接登录</a>
|
||||
</p>
|
||||
<div class="cl"></div>
|
||||
<%= form_for :user, :url => register_path,:method=>'post', :html => {:id=>'main_reg_form'} do |f| %>
|
||||
<%= error_messages_for 'user' %>
|
||||
<input type="text" name="none_name" style="display: none">
|
||||
<input type="password" name="none_psw" style="display: none">
|
||||
<ul >
|
||||
<li class="new_loggin_users ">
|
||||
<i class="fa fa-mobile-phone font-16 ml10 color-grey"></i>
|
||||
<input type="text" id="user_phone_num" name="user[phone]" class="new_loggin_input" autocomplete="off" placeholder="请输入手机号码">
|
||||
<i class="fa font-16 mr5" id="user_phone_check"></i>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_phone_notice"></p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="new_loggin_users">
|
||||
<i class="fa fa-lock font-16 ml10 color-grey"></i>
|
||||
<input type="text" onfocus="this.type='password'" class="new_loggin_input" style="width: 292px;" name="user[password]" id="user_password_1" autocomplete="off" placeholder="密码至少由8位由字母或特殊符号和数字结合">
|
||||
<i class="fa font-16 mr5" id="user_password_1_check"></i>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_password_1_notice"></p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="pr">
|
||||
<div id="drag" class="drag_slider"></div>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_verification_notice"></p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="pr">
|
||||
<input type="text" class="new_loggin_input_test fl" name="code" id="phone_verification_code" placeholder="请输入收到的短信验证码">
|
||||
<a href="javascript:void(0);" class="fr task-btn-ver" onclick="get_phone_verification_code(this)" id="get_verification_code">获取验证码</a>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="phone_verification_code_notice"></p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
<li class="pr">
|
||||
<label><input type="checkbox" checked="checked" id="read_and_confirm_1" class="new_login_check"> 我已阅读并同意<a href="<%= agreement_path %>" target="_blank">服务协议条款</a></label>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_aggre_1_notice"></p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:void(0);" id="regist_btn_phone" onclick="phone_register();" class ="new_login_submit" style="text-decoration:none;">注册</a>
|
||||
</li>
|
||||
</ul>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="login_weixin_content_2" class="undis">
|
||||
<div class="new_login_form">
|
||||
<p class="fr mt10 mb10 font-12">已有账号?<a href="<%= signin_path %>" class="ml10">直接登录</a>
|
||||
</p>
|
||||
<div class="cl"></div>
|
||||
<%= form_for :user, :url => register_path,:method=>'post', :html => {:id=>'main_reg_email_form'} do |f| %>
|
||||
<%= error_messages_for 'user' %>
|
||||
<input type="text" style="display: none">
|
||||
<input type="password" style="display: none">
|
||||
<ul >
|
||||
<li class="new_loggin_users">
|
||||
<i class="fa fa-envelope-o font-16 ml10 color-grey"></i>
|
||||
<input type="text" class="new_loggin_input" name="user[mail]" id="user_email_addr" style="width: 286px;" autocomplete="off" placeholder="请输入有效的邮箱地址">
|
||||
<i class="fa font-16 mr5" id="user_email_check"></i>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_email_addr_notice"></p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="new_loggin_users">
|
||||
<i class="fa fa-lock font-16 ml10 color-grey"></i>
|
||||
<input type="text" onfocus="this.type='password'" class="new_loggin_input" style="width: 292px;" name="user[mail_password]" id="user_password_2" autocomplete="off" placeholder="密码至少由8位由字母或特殊符号和数字结合">
|
||||
<i class="fa font-16 mr5" id="user_password_2_check"></i>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_password_2_notice"></p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="pr">
|
||||
<label><input type="checkbox" id="read_and_confirm_2" checked="checked" class="new_login_check" > 我已阅读并同意<a href="<%= agreement_path %>" target="_blank">服务协议条款</a></label>
|
||||
<div class="new-login-error" style="display: none;">
|
||||
<p id="user_aggre_2_notice"></p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:void(0);" id="regist_btn_email" onclick="email_register();" class ="new_login_submit" style="text-decoration:none;">注册</a>
|
||||
</li>
|
||||
</ul>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$(".homepageSearchIcon").click(function(){
|
||||
var val=$('input:radio[name="search_type"]:checked').val();
|
||||
if(val==null){
|
||||
$("#navSearchAlert").css({display:"block"});
|
||||
}
|
||||
else {
|
||||
$("#navSearchAlert").css({display:"none"});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function(){
|
||||
$(".navHomepageSearchBoxcontainer").mouseover(function(){
|
||||
$(".navSearchTypeBox").css({display:"block"});
|
||||
});
|
||||
$(".navHomepageSearchBoxcontainer").mouseout(function(){
|
||||
$(".navSearchTypeBox").css({display:"none"});
|
||||
});
|
||||
})
|
||||
$(document).ready(function(){
|
||||
if(<%= @login%>){
|
||||
$("#signUpBox").css({display:"none"});
|
||||
$("#loginInBox").css({display:"block"});
|
||||
}else{
|
||||
$("#signUpBox").css({display:"block"});
|
||||
$("#loginInBox").css({display:"none"});
|
||||
$('#drag').drag();
|
||||
function g(o){
|
||||
return document.getElementById(o);
|
||||
}
|
||||
function HoverLi(n){
|
||||
for(var i=1;i<=2;i++){
|
||||
g('login_weixin_nav_'+i).className='login_weixin_nav_nomal';
|
||||
g('login_weixin_content_'+i).className='undis';
|
||||
}
|
||||
});
|
||||
g('login_weixin_nav_'+n).className='login_weixin_nav_hover';
|
||||
g('login_weixin_content_'+n).className='dis';
|
||||
}
|
||||
|
||||
var $login_correct = false;
|
||||
var wait = 60;
|
||||
function get_phone_verification_code(btn) {
|
||||
if ($phone_correct){
|
||||
if($('.drag_text').html() == "验证通过") {
|
||||
$.get(
|
||||
'<%=account_get_verification_code_path%>',
|
||||
{ value: $('#user_phone_num').val().trim(),
|
||||
type: 1},
|
||||
function (data) {
|
||||
if (data.status == "2") {
|
||||
$('#user_phone_notice').html('该手机号已被注册');
|
||||
$('#user_phone_notice').parent().show();
|
||||
} else {
|
||||
$('#user_phone_notice').html('');
|
||||
$('#user_phone_notice').parent().hide();
|
||||
time(btn);
|
||||
}
|
||||
});
|
||||
} else{
|
||||
$("#user_verification_notice").html("请先拖动滑块完成验证");
|
||||
$('#user_verification_notice').parent().show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function time(btn){
|
||||
if (wait==0) {
|
||||
$(btn).removeClass("rest-btn-ver");
|
||||
btn.removeAttribute("disabled");
|
||||
btn.innerHTML = "获取验证码";
|
||||
wait = 60;
|
||||
return;
|
||||
}else{
|
||||
$(btn).addClass("rest-btn-ver");
|
||||
btn.setAttribute("disabled", "disabled");
|
||||
btn.innerHTML = wait + "s后重试";
|
||||
wait--;
|
||||
}
|
||||
setTimeout(function(){
|
||||
time(btn);
|
||||
},1000);
|
||||
}
|
||||
|
||||
var $phone_correct = false;
|
||||
var $mail_correct = false;
|
||||
var $passwd_correct = false;
|
||||
var $passwd_comfirm_correct = false;
|
||||
var $passwd_1_correct = false;
|
||||
var $passwd_2_correct = false;
|
||||
jQuery(document).ready(function () {
|
||||
var $login = $('#user_login')
|
||||
var $mail = $('#user_mail')
|
||||
var $password = $('#user_password')
|
||||
var $password_confirmation = $('#user_password_confirmation')
|
||||
$login.blur(function (event) {
|
||||
if ($(this).is('#user_login')) {
|
||||
if (/^[a-zA-Z][a-zA-Z\d]{3,14}$/.test(this.value) == false){
|
||||
$('#login_req').html('<span style="color: #2384cd">只能使用英文字母和数字,必须以字母开头</span>');
|
||||
$('#login_req').show();
|
||||
return ;
|
||||
var $phone_num = $('#user_phone_num');
|
||||
var $mail = $('#user_email_addr');
|
||||
var $password1 = $('#user_password_1');
|
||||
var $password2 = $('#user_password_2');
|
||||
$phone_num.val("");
|
||||
$mail.val("");
|
||||
$password1.val("");
|
||||
$password2.val("");
|
||||
$phone_num.blur(function (event) {
|
||||
if ($(this).is('#user_phone_num')) {
|
||||
if (/^1\d{10}$/.test(this.value) == false){
|
||||
$('#user_phone_notice').html('请输入有效的11位手机号码');
|
||||
$('#user_phone_notice').parent().show();
|
||||
$("#user_phone_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
$.get(
|
||||
'<%=account_valid_ajax_path%>',
|
||||
{ valid: "login",
|
||||
{ valid: "phone",
|
||||
value: this.value },
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$('#login_req').html('<span style="color: green">'+data.message+'</span>');
|
||||
$login_correct = true;
|
||||
$('#user_phone_notice').html('');
|
||||
$('#user_phone_notice').parent().hide();
|
||||
$("#user_phone_check").removeClass("fa-times-circle").removeClass("color-orenge").addClass("fa-check").addClass("color-light-green");
|
||||
$phone_correct = true;
|
||||
} else {
|
||||
$('#login_req').html( '<span style="color: #2384cd">'+data.message+'</span>');
|
||||
$login_correct = false;
|
||||
$('#user_phone_notice').html('该手机号已被注册');
|
||||
$('#user_phone_notice').parent().show();
|
||||
$("#user_phone_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
$phone_correct = false;
|
||||
}
|
||||
$('#login_req').css('display','block');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ;
|
||||
});
|
||||
|
||||
$mail.blur(function (event) {
|
||||
if (/^[a-zA-Z0-9]+([._\\]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test(this.value) == false){
|
||||
$('#mail_req').html( '<span style="color: #2384cd">邮件格式不对</span>').show();
|
||||
$('#user_email_addr_notice').html('邮箱地址格式不对');
|
||||
$('#user_email_addr_notice').parent().show();
|
||||
$("#user_email_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
$mail_correct = false;
|
||||
return ;
|
||||
}
|
||||
if ($(this).is('#user_mail')) {
|
||||
if ($(this).is('#user_email_addr')) {
|
||||
$.get('<%=account_valid_ajax_path%>',
|
||||
{ valid: "mail",
|
||||
value: this.value },
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$('#mail_req').html( '<span style="color: green">'+data.message+'</span>' );
|
||||
$('#user_email_addr_notice').html('');
|
||||
$('#user_email_addr_notice').parent().hide();
|
||||
$("#user_email_check").removeClass("fa-times-circle").removeClass("color-orenge").addClass("fa-check").addClass("color-light-green");
|
||||
$mail_correct = true;
|
||||
} else {
|
||||
$('#mail_req').html( '<span style="color: #2384cd">'+data.message+'</span>' );
|
||||
$('#user_email_addr_notice').html(data.message);
|
||||
$('#user_email_addr_notice').parent().show();
|
||||
$("#user_email_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
$mail_correct = false;
|
||||
}
|
||||
$('#mail_req').css('display','block');
|
||||
});
|
||||
}
|
||||
;
|
||||
});
|
||||
$password.blur(function () {
|
||||
var pas1 = document.getElementById("user_password").value;
|
||||
var password_min_length = <%= Setting.password_min_length.to_i %>
|
||||
$password1.blur(function () {
|
||||
var pas1 = document.getElementById("user_password_1").value;
|
||||
var password_min_length = <%= Setting.password_min_length.to_i %>;
|
||||
if (pas1.length >= password_min_length) {
|
||||
$('#passwd_req').html('');
|
||||
$passwd_correct = true;
|
||||
$('#user_password_1_notice').html('');
|
||||
$('#user_password_1_notice').parent().hide();
|
||||
$("#user_password_1_check").removeClass("fa-times-circle").removeClass("color-orenge").addClass("fa-check").addClass("color-light-green");
|
||||
$passwd_1_correct = true;
|
||||
}
|
||||
else {
|
||||
$('#passwd_req').html( '<span style="color: #2384cd">'+'<%= l(:setting_password_min_length_limit, :count => Setting.password_min_length.to_i) %>'+'</span>');
|
||||
$passwd_correct = false;
|
||||
$('#user_password_1_notice').html('<%= l(:setting_password_min_length_limit, :count => Setting.password_min_length.to_i) %>');
|
||||
$('#user_password_1_notice').parent().show();
|
||||
$("#user_password_1_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
$passwd_1_correct = false;
|
||||
}
|
||||
$('#passwd_req').css('display','block');
|
||||
|
||||
|
||||
});
|
||||
$password_confirmation.blur(function () {
|
||||
var password_min_length = <%= Setting.password_min_length.to_i %>
|
||||
var pas1 = document.getElementById("user_password").value;
|
||||
var pas2 = document.getElementById("user_password_confirmation").value;
|
||||
if (pas1.length >= password_min_length && pas1 == pas2 ) {
|
||||
$('#confirm_req').html('<span style="color: green">'+'<%= l(:setting_password_success) %>'+'</span>');
|
||||
$passwd_comfirm_correct = true;
|
||||
|
||||
$password2.blur(function () {
|
||||
var pas1 = document.getElementById("user_password_2").value;
|
||||
var password_min_length = <%= Setting.password_min_length.to_i %>;
|
||||
if (pas1.length >= password_min_length) {
|
||||
$('#user_password_2_notice').html('');
|
||||
$('#user_password_2_notice').parent().hide();
|
||||
$("#user_password_2_check").removeClass("fa-times-circle").removeClass("color-orenge").addClass("fa-check").addClass("color-light-green");
|
||||
$passwd_2_correct = true;
|
||||
}
|
||||
else {
|
||||
$('#confirm_req').html('<span style="color: #2384cd">'+'<%= l(:setting_password_error) %>'+'</span>');
|
||||
$passwd_comfirm_correct = false;
|
||||
|
||||
$('#user_password_2_notice').html('<%= l(:setting_password_min_length_limit, :count => Setting.password_min_length.to_i) %>');
|
||||
$('#user_password_2_notice').parent().show();
|
||||
$("#user_password_2_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
$passwd_2_correct = false;
|
||||
}
|
||||
$('#confirm_req').css('display','block');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<p class="fl ml10 ">高校教育大数据服务平台</p>
|
||||
</div>
|
||||
<a href="<%= user_join_path %>" class="fr new-btn mt10">注册</a>
|
||||
<a href="<%= signin_url %>" class="fr new-btn new-btn-green mr5 mt10">登录</a>
|
||||
<a href="<%= signin_url %>" class="fr new-btn new-btn-blue mr5 mt10">登录</a>
|
||||
<div id="navHomepageSearch">
|
||||
<% name = name%>
|
||||
<%= form_tag({controller: :welcome, action: :search },:class=>'navHomepageSearchBox', method: :get) do %>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<footer class="inner-footer">
|
||||
<footer class="inner-footer" id="new_footer">
|
||||
<div class="inner-footer_con">
|
||||
<ul class="clearfix inner-footer-nav">
|
||||
<li><a href="<%= home_path %>" class="fl" target="_blank">网站首页</a></li>
|
||||
<li><a href="<%= agreement_path %>" class="fl" target="_blank">服务协议</a></li>
|
||||
<li><%= link_to l(:label_surpport_group), "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168", :class => "fl", :target=>"_blank" %></li>
|
||||
<li><%= link_to "支持", "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168", :class => "fl", :target=>"_blank" %></li>
|
||||
<li><a href="<%= forums_path %>" class="fl" target="_blank">社区</a></li>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
</div>
|
||||
<div id="navHomepageSearch">
|
||||
<% name = name%>
|
||||
<%= form_tag({controller: :welcome, action: :search },:class=>'navHomepageSearchBox', method: :get) do %>
|
||||
<%= form_tag({controller: :welcome, action: :search }, method: :get) do %>
|
||||
<input type="text" name="q" value="<%= name.nil? ? "" : name %>" id="navHomepageSearchInput" class="new-search fl ml10 mr10" placeholder="请输入关键词进行搜索" onkeypress="search_in_header_I(event,$(this));"/>
|
||||
<input type="hidden" name="search_type" id="type" value="all"/>
|
||||
<input type="text" style="display: none;"/>
|
||||
|
@ -17,7 +17,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
<a href="<%= user_join_path %>" class="fr new-btn mt10">注册</a>
|
||||
<a href="<%= signin_path %>" class="fr new-btn new-btn-green mr5 mt10">登录</a>
|
||||
<a href="<%= signin_path %>" class="fr new-btn new-btn-blue mr5 mt10">登录</a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
|
|
@ -7,18 +7,21 @@
|
|||
<meta name="keywords" content="issue,bug,tracker" />
|
||||
<%= csrf_meta_tag %>
|
||||
<%= favicon %>
|
||||
<%= stylesheet_link_tag 'css/login', 'css/font-awesome' %>
|
||||
<%= stylesheet_link_tag 'css/bigdata-showpage', 'css/font-awesome', 'css/bigdata-common', 'css/bigdata-login', 'css/bigdata-popup' %>
|
||||
<%#= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
<%= javascript_heads %>
|
||||
<%= javascript_include_tag "bootstrap" %>
|
||||
<%= javascript_include_tag "bootstrap", "bigdata" %>
|
||||
</head>
|
||||
<body>
|
||||
<header class="header">
|
||||
<% if @welcome %>
|
||||
<header class="header">
|
||||
<%= render :partial => User.current.logged? ? 'layouts/logined_header' : 'layouts/unlogin_header' %>
|
||||
<%#= render :partial => 'layouts/bigdata_header' %>
|
||||
</header>
|
||||
<% end %>
|
||||
<div id="Container">
|
||||
<%= yield %>
|
||||
</div>
|
||||
<%= render :partial => 'layouts/footer' %>
|
||||
</body>
|
||||
<%= javascript_include_tag 'bigdata' %>
|
||||
</html>
|
|
@ -1,4 +1,68 @@
|
|||
<p><%= l(:mail_body_lost_password) %><br />
|
||||
<%= link_to h(@url), @url %></p>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>邮箱验证码发送</title>
|
||||
<style type="text/css">
|
||||
/* 邮箱验证链接页面 */
|
||||
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{ margin:0; padding:0;}
|
||||
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.5; background:#eaebec;}
|
||||
div,img,tr,td,table{ border:0;}
|
||||
table,tr,td{border:0;}
|
||||
ol,ul,li{ list-style-type:none}
|
||||
.new_content{ background:#fff; width: 100%;}
|
||||
.email-page-link{ }
|
||||
.email-link-top{ }
|
||||
.c_white{ color:#fff;}
|
||||
.email-link-con{ }
|
||||
.email-link-line{ }
|
||||
.email-link-footer{ padding:15px; color:#333; line-height: 1.9; }
|
||||
.c_grey02{ color: #888;}
|
||||
.fb{ font-weight: normal;}
|
||||
.f14{ }
|
||||
</style>
|
||||
|
||||
<p><%= l(:field_login) %>: <b><%=h @token.user.login %></b></p>
|
||||
</head>
|
||||
|
||||
<body style="background:#fff;">
|
||||
|
||||
<div class="new_content">
|
||||
<div style="width: 598px; background:#fff; margin:20px auto; font-size:14px; ">
|
||||
<div style="height:50px; width: 578px; background:#46484c; padding:9px 10px 6px;border:1px solid #ddd; border-bottom:none;">
|
||||
<a href="www.trustie.net" >
|
||||
<img src="http://www.trustie.org/images/bigdata/new-logo.png?1485311929" width="45" height="45" style=" float:left;" >
|
||||
<p style="color:#fff; float:left; margin-top:15px; margin-left:15px;">高校大数据教育平台</p>
|
||||
</a>
|
||||
<div style="clear:both; overflow:hidden;"></div>
|
||||
</div>
|
||||
<div style="width: 558px; border-left:1px solid #ddd;border-right:1px solid #ddd; background:#fff; padding:50px 20px; color:#333; line-height: 1.9;">
|
||||
<p style="color:#333; font-size:16px; margin-bottom:15px;">
|
||||
亲爱的<span style="font-weight:bold;color:#3b94d6; margin-left:5px; margin-right:5px;"><%= @login %></span>,您好!
|
||||
</p>
|
||||
<p style="color:#333;">欢迎使用高校大数据教育平台找回密码功能。<br/>
|
||||
您此次找回密码的验证码如下,请在<span style=" color:#e72c37;"> 10 分钟</span>内在找回密码页输入此验证码,并进行下一步操作。
|
||||
如非你本人操作,请忽略此邮件。<br/>
|
||||
</p>
|
||||
<div style="text-align: center;">
|
||||
<div style="display:block; height: 45px; line-height:45px;padding:0 30px; width:100px; font-size: 20px; font-weight: bold; background:#ffd9d9; color:#e72c37; margin:30px auto;">
|
||||
<p><%= @code %></p>
|
||||
</div>
|
||||
<span style="font-weight: normal;color:#666;">
|
||||
此邮件为系统所发,请勿直接回复。<br/>
|
||||
要解决问题或了解您的帐户详情,您可以访问 <a href="http://www.trustie.org/forums/1/memos/1168" style="font-weight: normal; color:#3b94d6;">帮助中心</a>。
|
||||
</span>
|
||||
</div>
|
||||
<p style="color:#666; margin-top:30px;">
|
||||
如果您并未发过此请求,则可能是因为其他用户在尝试重设密码时误输了您的邮件地址,而使您收到了这封邮件,那么您可以放心的忽略此邮件,无需进一步采取任何操作。
|
||||
</p>
|
||||
</div>
|
||||
<div style="padding:20px; color:#333; line-height: 1.9;background:#46484c;border:1px solid #ddd; border-top:none; width: 558px;">
|
||||
<a href="http://www.trustie.org/" style="font-weight: normal; color:#fff;">www.trustie.org</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
</div>
|
||||
<div style="width: 558px; border-left:1px solid #ddd;border-right:1px solid #ddd; background:#fff; padding:20px; color:#333; line-height: 1.9;">
|
||||
<p style="font-size: 14px; color:#333;">
|
||||
<span style="font-weight:bold;color:#3b94d6;"><%= @login %></span>,您好!<br/>
|
||||
您好!<br/>
|
||||
您已经成功注册为Trustie用户!<br/>
|
||||
请点击以下链接激活您的帐号:<br/>
|
||||
<%= link_to h(@url), @url, :style => "font-weight: normal; color:#3b94d6;" %><br/>
|
||||
|
|
|
@ -530,7 +530,11 @@ RedmineApp::Application.routes.draw do
|
|||
match 'account/lost_password', :via => [:get, :post], :as => 'lost_password'
|
||||
match 'account/activate', :via => :get
|
||||
match 'account/valid_ajax', :via => :get
|
||||
match 'account/valid_register_user', :via => :get
|
||||
match 'account/valid_verification_code', :via => :get
|
||||
match 'account/get_verification_code', :via => :get
|
||||
match 'account/change_email', :via => :get
|
||||
match 'account/reset_psd', :via => [:get, :post]
|
||||
match 'account/email_valid', :to => 'account#email_valid', :via => :get
|
||||
match 'account/resendmail', :to => 'account#resendmail', :via=> :get, :as => 'resendmail'
|
||||
match 'projects/:id/wiki', :to => 'wikis#edit', :via => :post
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class AddPhoneToUser < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :users, :phone, :string
|
||||
end
|
||||
end
|
|
@ -0,0 +1,13 @@
|
|||
class CreateVerificationCodes < ActiveRecord::Migration
|
||||
def change
|
||||
create_table :verification_codes do |t|
|
||||
t.string :code
|
||||
t.integer :code_type
|
||||
t.integer :status
|
||||
t.string :phone
|
||||
t.string :email
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
89
db/schema.rb
89
db/schema.rb
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20170309024921) do
|
||||
ActiveRecord::Schema.define(:version => 20170322095511) do
|
||||
|
||||
create_table "activities", :force => true do |t|
|
||||
t.integer "act_id", :null => false
|
||||
|
@ -521,6 +521,13 @@ ActiveRecord::Schema.define(:version => 20170309024921) do
|
|||
add_index "contest_messages", ["contest_id"], :name => "index_contest_messages_on_contest_id"
|
||||
add_index "contest_messages", ["user_id"], :name => "index_contest_messages_on_user_id"
|
||||
|
||||
create_table "contest_notifications", :force => true do |t|
|
||||
t.text "title"
|
||||
t.text "content"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "contestant_for_contests", :force => true do |t|
|
||||
t.integer "student_id"
|
||||
t.integer "contest_id"
|
||||
|
@ -588,6 +595,37 @@ ActiveRecord::Schema.define(:version => 20170309024921) do
|
|||
add_index "contestant_works", ["user_id"], :name => "index_contestant_works_on_user_id"
|
||||
add_index "contestant_works", ["work_id"], :name => "index_contestant_works_on_work_id"
|
||||
|
||||
create_table "contesting_projects", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "contest_id"
|
||||
t.integer "user_id"
|
||||
t.string "description"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "reward"
|
||||
end
|
||||
|
||||
create_table "contesting_softapplications", :force => true do |t|
|
||||
t.integer "softapplication_id"
|
||||
t.integer "contest_id"
|
||||
t.integer "user_id"
|
||||
t.string "description"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "reward"
|
||||
end
|
||||
|
||||
create_table "contestnotifications", :force => true do |t|
|
||||
t.integer "contest_id"
|
||||
t.string "title"
|
||||
t.string "summary"
|
||||
t.text "description"
|
||||
t.integer "author_id"
|
||||
t.integer "notificationcomments_count"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "contests", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.string "name"
|
||||
|
@ -820,6 +858,21 @@ ActiveRecord::Schema.define(:version => 20170309024921) do
|
|||
|
||||
add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority"
|
||||
|
||||
create_table "delayed_jobs_20161218", :id => false, :force => true do |t|
|
||||
t.integer "id", :default => 0, :null => false
|
||||
t.integer "priority", :default => 0, :null => false
|
||||
t.integer "attempts", :default => 0, :null => false
|
||||
t.text "handler", :null => false
|
||||
t.text "last_error"
|
||||
t.datetime "run_at"
|
||||
t.datetime "locked_at"
|
||||
t.datetime "failed_at"
|
||||
t.string "locked_by"
|
||||
t.string "queue"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
create_table "discuss_demos", :force => true do |t|
|
||||
t.string "title"
|
||||
t.text "body"
|
||||
|
@ -1090,8 +1143,8 @@ ActiveRecord::Schema.define(:version => 20170309024921) do
|
|||
t.integer "homework_type", :default => 1
|
||||
t.string "late_penalty"
|
||||
t.integer "course_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.integer "teacher_priority", :default => 1
|
||||
t.integer "anonymous_comment", :default => 0
|
||||
t.integer "quotes", :default => 0
|
||||
|
@ -1099,6 +1152,8 @@ ActiveRecord::Schema.define(:version => 20170309024921) do
|
|||
t.datetime "simi_time"
|
||||
t.integer "score_open", :default => 1
|
||||
t.integer "anonymous_appeal", :default => 0
|
||||
t.integer "homework_bank_id"
|
||||
t.boolean "is_update", :default => false
|
||||
end
|
||||
|
||||
add_index "homework_commons", ["course_id", "id"], :name => "index_homework_commons_on_course_id_and_id"
|
||||
|
@ -1401,6 +1456,23 @@ ActiveRecord::Schema.define(:version => 20170309024921) do
|
|||
|
||||
add_index "memos", ["root_id"], :name => "index_memos_on_root_id"
|
||||
|
||||
create_table "mess", :id => false, :force => true do |t|
|
||||
t.string "课程名"
|
||||
t.integer "课程ID", :default => 0, :null => false
|
||||
t.string "教师姓", :default => "", :null => false
|
||||
t.string "教师名", :limit => 30, :default => "", :null => false
|
||||
t.string "主贴名", :default => "", :null => false
|
||||
t.integer "主贴或回帖ID", :default => 0, :null => false
|
||||
t.integer "回帖对应主贴ID"
|
||||
t.integer "帖子点赞数"
|
||||
t.integer "主贴回复数", :default => 0, :null => false
|
||||
t.text "主贴或回帖内容"
|
||||
t.datetime "发帖时间", :null => false
|
||||
t.integer "发帖或回帖用户ID", :default => 0, :null => false
|
||||
t.string "发帖或回帖用户姓", :default => "", :null => false
|
||||
t.string "发帖或回帖用户名", :limit => 30, :default => "", :null => false
|
||||
end
|
||||
|
||||
create_table "message_alls", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "message_id"
|
||||
|
@ -2457,12 +2529,23 @@ ActiveRecord::Schema.define(:version => 20170309024921) do
|
|||
t.integer "visits", :default => 0
|
||||
t.integer "excellent_teacher", :default => 0
|
||||
t.integer "excellent_student", :default => 0
|
||||
t.string "phone"
|
||||
end
|
||||
|
||||
add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id"
|
||||
add_index "users", ["id", "type"], :name => "index_users_on_id_and_type"
|
||||
add_index "users", ["type"], :name => "index_users_on_type"
|
||||
|
||||
create_table "verification_codes", :force => true do |t|
|
||||
t.string "code"
|
||||
t.integer "code_type"
|
||||
t.integer "status"
|
||||
t.string "phone"
|
||||
t.string "email"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "versions", :force => true do |t|
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
t.string "name", :default => "", :null => false
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#coding=utf-8
|
||||
|
||||
require 'net/http'
|
||||
require 'net/https'
|
||||
require 'uri'
|
||||
|
||||
module Trustie
|
||||
|
@ -10,7 +10,7 @@ module Trustie
|
|||
begin
|
||||
o = sendYunpian(opt[:mobile], opt[:code])
|
||||
if o["code"] != 0
|
||||
Rails.logger.error "发送短信出错: #{o['msg']}"
|
||||
Rails.logger.error "发送短信出错: #{o['code']}--#{o['msg']}"
|
||||
end
|
||||
return o["code"] == 0
|
||||
rescue => e
|
||||
|
@ -21,21 +21,27 @@ module Trustie
|
|||
|
||||
def self.sendYunpian(mobile, code)
|
||||
#修改为您的apikey.可在官网(http://www.yunpian.com)登录后用户中心首页看到
|
||||
apikey = '2affbf2ff83f9810512622ec83bccd4f'
|
||||
apikey = Redmine::Configuration['sms_apikey']
|
||||
#指定模板发送接口HTTP地址
|
||||
send_tpl_sms_uri = URI.parse('https://sms.yunpian.com/v2/sms/tpl_single_send.json')
|
||||
send_tpl_sms_uri = URI.parse('https://sms.yunpian.com/v2/sms/single_send.json')
|
||||
|
||||
params = {}
|
||||
params['apikey'] = apikey
|
||||
params['mobile'] = mobile
|
||||
#指定模板发送
|
||||
#设置模板ID,如使用1号模板:【#company#】您的验证码是#code#
|
||||
#设置对应的模板变量值
|
||||
params['text'] = "【实训吧】" + code + "(手机验证码)。如非本人操作,请忽略。"
|
||||
|
||||
params['tpl_id'] = 1733594
|
||||
params['tpl_value'] = URI::escape('#code#')+'='+URI::escape(code)
|
||||
response = Net::HTTP.post_form(send_tpl_sms_uri,params)
|
||||
ActiveSupport::JSON.decode(response.body)
|
||||
http = Net::HTTP.new(send_tpl_sms_uri.host, send_tpl_sms_uri.port)
|
||||
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
||||
http.use_ssl = true
|
||||
begin
|
||||
request = Net::HTTP::Post.new(send_tpl_sms_uri.request_uri)
|
||||
request.set_form_data(params)
|
||||
request['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'
|
||||
response = http.start { |http| http.request(request) }
|
||||
ActiveSupport::JSON.decode(response.body)
|
||||
rescue =>err
|
||||
return nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
|
@ -632,6 +632,42 @@ function warnLeavingUnsaved(message) {
|
|||
};
|
||||
}
|
||||
|
||||
function set_footer(){
|
||||
var footerHeight = 0,
|
||||
footerTop = 0,
|
||||
$footer = $("#new_footer");
|
||||
positionFooter();
|
||||
|
||||
//定义positionFooter function
|
||||
function positionFooter() {
|
||||
//取到div#footer高度
|
||||
footerHeight = $footer.height();
|
||||
//div#footer离屏幕顶部的距离
|
||||
footerTop = ($(window).scrollTop()+$(window).height()-footerHeight)+"px";
|
||||
/* DEBUGGING STUFF
|
||||
console.log("Document height: ", $(document.body).height());
|
||||
console.log("Window height: ", $(window).height());
|
||||
console.log("Window scroll: ", $(window).scrollTop());
|
||||
console.log("Footer height: ", footerHeight);
|
||||
console.log("Footer top: ", footerTop);
|
||||
console.log("-----------")
|
||||
*/
|
||||
//如果页面内容高度小于屏幕高度,div#footer将绝对定位到屏幕底部,否则div#footer保留它的正常静态定位
|
||||
if ( ($(document.body).height()) < $(window).height()) {
|
||||
$footer.css({
|
||||
position: "absolute"
|
||||
}).stop().animate({
|
||||
top: footerTop
|
||||
});
|
||||
} else {
|
||||
$footer.css({
|
||||
position: "static"
|
||||
});
|
||||
}
|
||||
}
|
||||
$(window).scroll(positionFooter).resize(positionFooter);
|
||||
}
|
||||
|
||||
function setupHeartBeat(){
|
||||
var time = 60*1000*30; // 30 mins
|
||||
setInterval(function(){$.getJSON('/account/heartbeat');},time);
|
||||
|
@ -699,6 +735,7 @@ $(document).ready(setupAjaxIndicator);
|
|||
$(document).ready(setupHeartBeat);
|
||||
$(document).ready(hideOnLoad);
|
||||
$(document).ready(addFormObserversForDoubleSubmit);
|
||||
$(document).ready(set_footer);
|
||||
|
||||
function img_thumbnails() {
|
||||
$('.thumbnails a').colorbox({rel:'nofollow'});
|
||||
|
|
|
@ -1,17 +1,311 @@
|
|||
var $lost_psd_valid = false;
|
||||
var lost_psd_time = 60;
|
||||
|
||||
$(function(){
|
||||
$("#change_user_email").on("click", function(){
|
||||
$("#change_user_email_block").toggle();
|
||||
});
|
||||
|
||||
$("#lost_psd_input").on("blur", function(){
|
||||
if (/^1\d{10}$/.test($("#lost_psd_input").val())){
|
||||
$.get(
|
||||
'/account/valid_register_user',
|
||||
{ valid: "phone",
|
||||
value: $("#lost_psd_input").val() },
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$('#user_phone_notice').html('');
|
||||
$('#user_phone_notice').parent().hide();
|
||||
$("#user_phone_check").removeClass("fa-times-circle").removeClass("color-orenge").addClass("fa-check").addClass("color-light-green");
|
||||
$lost_psd_valid = true;
|
||||
} else {
|
||||
$('#user_phone_notice').html(data.message);
|
||||
$('#user_phone_notice').parent().show();
|
||||
$("#user_phone_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
$lost_psd_valid = false;
|
||||
}
|
||||
});
|
||||
} else if(/^[a-zA-Z0-9]+([._\\]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test($("#lost_psd_input").val())){
|
||||
$.get('/account/valid_register_user',
|
||||
{ valid: "mail",
|
||||
value: $("#lost_psd_input").val() },
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$('#user_phone_notice').html('');
|
||||
$('#user_phone_notice').parent().hide();
|
||||
$("#user_phone_check").removeClass("fa-times-circle").removeClass("color-orenge").addClass("fa-check").addClass("color-light-green");
|
||||
$lost_psd_valid = true;
|
||||
} else {
|
||||
$('#user_phone_notice').html(data.message);
|
||||
$('#user_phone_notice').parent().show();
|
||||
$("#user_phone_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
$lost_psd_valid = false;
|
||||
}
|
||||
});
|
||||
} else{
|
||||
$lost_psd_valid = false;
|
||||
$('#user_phone_notice').html('请输入有效的邮箱或手机号');
|
||||
$('#user_phone_notice').parent().show();
|
||||
$("#user_phone_check").removeClass("fa-check").removeClass("color-light-green").addClass("fa-times-circle").addClass("color-orenge");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$("#new_psd_submit").on("click", function(){
|
||||
var length = parseInt($("#password_min_length").val());
|
||||
if($("#new_password").val().length < length){
|
||||
$('#new_password_notice').parent().show();
|
||||
} else{
|
||||
$('#new_password_notice').parent().hide();
|
||||
if($("#new_password").val() != $("#new_password_confirmation").val()) {
|
||||
$('#new_password_confirmation_notice').parent().show();
|
||||
} else{
|
||||
$('#new_password_confirmation_notice').parent().hide();
|
||||
$("#new_psd_submit").parent().parent().parent().submit();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function settime(btn){
|
||||
if (lost_psd_time==0) {
|
||||
$(btn).removeClass("rest-btn-ver");
|
||||
btn.removeAttribute("disabled");
|
||||
btn.innerHTML = "获取验证码";
|
||||
lost_psd_time = 60;
|
||||
return;
|
||||
}else{
|
||||
$(btn).addClass("rest-btn-ver");
|
||||
btn.setAttribute("disabled", "disabled");
|
||||
btn.innerHTML = lost_psd_time + "s后重试";
|
||||
lost_psd_time--;
|
||||
}
|
||||
setTimeout(function(){
|
||||
settime(btn);
|
||||
},1000);
|
||||
}
|
||||
|
||||
function get_psd_verification_code(btn){
|
||||
if($lost_psd_valid){
|
||||
if($('.drag_text').html() == "验证通过") {
|
||||
btn.setAttribute("disabled", "disabled");
|
||||
$.get(
|
||||
'/account/get_verification_code',
|
||||
{ value: $('#lost_psd_input').val().trim(),
|
||||
type: 2},
|
||||
function (data) {
|
||||
if (data.status == "2") {
|
||||
$('#user_phone_notice').html('该手机号或邮箱未注册');
|
||||
$('#user_phone_notice').parent().show();
|
||||
btn.removeAttribute("disabled");
|
||||
} else {
|
||||
$('#user_phone_notice').html('');
|
||||
$('#user_phone_notice').parent().hide();
|
||||
settime(btn);
|
||||
if(data.status == "3"){
|
||||
$("#ver_code_type").val(3);
|
||||
$("#send_success_notice").html("验证码已发送到您的邮箱,去<a href='http://mail." + data.link + "' style='color: #6a8abe; text-decoration: underline;' target='_blank'>查收</a>");
|
||||
$("#send_success_notice").show();
|
||||
} else{
|
||||
$("#ver_code_type").val(2);
|
||||
$("#send_success_notice").html("验证码已发送到您的手机,请注意查收");
|
||||
$("#send_success_notice").show();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else{
|
||||
$("#user_verification_notice").html("请先拖动滑块完成验证");
|
||||
$('#user_verification_notice').parent().show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function lost_psd_next(){
|
||||
if($("#lost_psd_next_a").hasClass('new_login_submit_disable')){
|
||||
return;
|
||||
}
|
||||
if($lost_psd_valid){
|
||||
if($('.drag_text').html() == "验证通过"){
|
||||
if($("#psd_verification_code").val().trim() == ""){
|
||||
$("#psd_verification_code").html("请输入验证码");
|
||||
$("#phone_verification_code_notice").parent().show();
|
||||
} else{
|
||||
$("#phone_verification_code_notice").html("");
|
||||
$("#phone_verification_code_notice").parent().hide();
|
||||
$.get(
|
||||
'/account/valid_verification_code',
|
||||
{ phone: $("#lost_psd_input").val().trim(),
|
||||
code: $("#psd_verification_code").val().trim(),
|
||||
type: $("#ver_code_type").val()},
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$("#phone_verification_code_notice").html("");
|
||||
$("#phone_verification_code_notice").parent().hide();
|
||||
$("#lost_psd_next_a").addClass("new_login_submit_disable");
|
||||
window.location.href = "/account/reset_psd?value="+$("#lost_psd_input").val().trim();
|
||||
} else {
|
||||
$("#phone_verification_code_notice").html("手机验证码错误或过期");
|
||||
$("#phone_verification_code_notice").parent().show();
|
||||
}
|
||||
});
|
||||
}
|
||||
} else{
|
||||
$("#user_verification_notice").html("请先拖动滑块完成验证");
|
||||
$('#user_verification_notice').parent().show();
|
||||
}
|
||||
} else{
|
||||
$('#lost_psd_input').blur();
|
||||
}
|
||||
}
|
||||
|
||||
function submit_user_emails(id){
|
||||
if (/^[a-zA-Z0-9]+([._\\]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test($("#user_new_email").val()) == false){
|
||||
$('#mail_req').html("请输入有效的邮箱地址").show();
|
||||
return ;
|
||||
} else{
|
||||
$.get('/account/valid_ajax',
|
||||
{ valid: "mail",
|
||||
value: $("#user_new_email").val() },
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$('#mail_req').html("");
|
||||
$.get('/account/change_email',
|
||||
{ valid: "mail",
|
||||
value: $("#user_new_email").val(),
|
||||
user_id: id
|
||||
},
|
||||
function (change_data){
|
||||
$("#user_email_show").html(change_data.email);
|
||||
$("#user_email_link").attr('href', 'http://mail.' + change_data.email_link);
|
||||
$("#user_new_email").val("");
|
||||
$("#change_user_email_block").toggle();
|
||||
return;
|
||||
});
|
||||
} else {
|
||||
$('#mail_req').html("该邮箱已注册");
|
||||
}
|
||||
$('#mail_req').show();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function loginin(){
|
||||
$('#main_login_form').submit(); //表单提交没有任何反应的原因:js冲突
|
||||
}
|
||||
|
||||
function register(){
|
||||
if($("#loginUpButton").hasClass('new_login_submit_disable')){
|
||||
function phone_register(){
|
||||
if($("#regist_btn_phone").hasClass('new_login_submit_disable')){
|
||||
return;
|
||||
}
|
||||
if($login_correct && $mail_correct && $passwd_correct && $passwd_comfirm_correct && $("#read_and_confirm").attr("checked") == 'checked'){
|
||||
$("#main_reg_form").submit();
|
||||
if($phone_correct && $passwd_1_correct){
|
||||
if($("#phone_verification_code").val().trim() == ""){
|
||||
$("#phone_verification_code_notice").html("请输入手机验证码");
|
||||
$("#phone_verification_code_notice").parent().show();
|
||||
} else{
|
||||
$("#phone_verification_code_notice").html("");
|
||||
$("#phone_verification_code_notice").parent().hide();
|
||||
if($("#read_and_confirm_1").attr("checked") == 'checked'){
|
||||
$("#user_aggre_1_notice").html("");
|
||||
$("#user_aggre_1_notice").parent().hide();
|
||||
$.get(
|
||||
'/account/valid_verification_code',
|
||||
{ phone: $("#user_phone_num").val().trim(),
|
||||
code: $("#phone_verification_code").val().trim(),
|
||||
type: 1},
|
||||
function (data) {
|
||||
if (data.valid) {
|
||||
$("#phone_verification_code_notice").html("");
|
||||
$("#phone_verification_code_notice").parent().hide();
|
||||
$("#main_reg_form").submit();
|
||||
$("#regist_btn_phone").addClass("new_login_submit_disable");
|
||||
} else {
|
||||
$("#phone_verification_code_notice").html("手机验证码错误或过期");
|
||||
$("#phone_verification_code_notice").parent().show();
|
||||
}
|
||||
});
|
||||
} else{
|
||||
$("#user_aggre_1_notice").html("如果要继续请选中此框");
|
||||
$("#user_aggre_1_notice").parent().show();
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$('#user_login').blur();
|
||||
$('#user_mail').blur();
|
||||
$('#user_password').blur();
|
||||
$('#user_password_confirmation').blur();
|
||||
$('#user_phone_num').blur();
|
||||
$('#user_password_1').blur();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function email_register(){
|
||||
if($("#regist_btn_email").hasClass('new_login_submit_disable')){
|
||||
return;
|
||||
}
|
||||
if($mail_correct && $passwd_2_correct){
|
||||
if($("#read_and_confirm_2").attr("checked") == 'checked'){
|
||||
$("#user_aggre_2_notice").html("");
|
||||
$("#user_aggre_2_notice").parent().hide();
|
||||
$("#main_reg_email_form").submit();
|
||||
$("#regist_btn_email").addClass("new_login_submit_disable");
|
||||
} else{
|
||||
$("#user_aggre_2_notice").html("如果要继续请选中此框");
|
||||
$("#user_aggre_2_notice").parent().show();
|
||||
}
|
||||
}else{
|
||||
$('#user_email_addr').blur();
|
||||
$('#user_password_2').blur();
|
||||
}
|
||||
}
|
||||
|
||||
(function($){
|
||||
$.fn.drag = function(options){
|
||||
var x, drag = this, isMove = false, defaults = {
|
||||
};
|
||||
var options = $.extend(defaults, options);
|
||||
//添加背景,文字,滑块
|
||||
var html = '<div class="drag_bg"></div>'+
|
||||
'<div class="drag_text" onselectstart="return false;" unselectable="on">拖动滑块验证</div>'+
|
||||
'<div class="handler handler_bg"></div>';
|
||||
this.append(html);
|
||||
|
||||
var handler = drag.find('.handler');
|
||||
var drag_bg = drag.find('.drag_bg');
|
||||
var text = drag.find('.drag_text');
|
||||
var maxWidth = drag.width() - handler.width(); //能滑动的最大间距
|
||||
|
||||
//鼠标按下时候的x轴的位置
|
||||
handler.mousedown(function(e){
|
||||
isMove = true;
|
||||
x = e.pageX - parseInt(handler.css('left'), 10);
|
||||
});
|
||||
|
||||
//鼠标指针在上下文移动时,移动距离大于0小于最大间距,滑块x轴位置等于鼠标移动距离
|
||||
$(document).mousemove(function(e){
|
||||
var _x = e.pageX - x;
|
||||
if(isMove){
|
||||
if(_x > 0 && _x <= maxWidth){
|
||||
handler.css({'left': _x});
|
||||
drag_bg.css({'width': _x});
|
||||
}else if(_x > maxWidth){ //鼠标指针移动距离达到最大时清空事件
|
||||
dragOk();
|
||||
}
|
||||
}
|
||||
}).mouseup(function(e){
|
||||
isMove = false;
|
||||
var _x = e.pageX - x;
|
||||
if(_x < maxWidth){ //鼠标松开时,如果没有达到最大距离位置,滑块就返回初始位置
|
||||
handler.css({'left': 0});
|
||||
drag_bg.css({'width': 0});
|
||||
}
|
||||
});
|
||||
|
||||
//清空事件
|
||||
function dragOk(){
|
||||
handler.removeClass('handler_bg').addClass('handler_ok_bg');
|
||||
text.text('验证通过');
|
||||
drag.css({'color': '#fff'});
|
||||
handler.unbind('mousedown');
|
||||
$(document).unbind('mousemove');
|
||||
$(document).unbind('mouseup');
|
||||
$("#user_verification_notice").html("");
|
||||
$('#user_verification_notice').parent().hide();
|
||||
}
|
||||
};
|
||||
})(jQuery);
|
||||
|
|
|
@ -0,0 +1,113 @@
|
|||
/* 重置样式 */
|
||||
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td,span{ margin:0; padding:0;}
|
||||
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.9; background:#f5f9fc; color:#333;}
|
||||
div,img,tr,td,table{ border:0;}
|
||||
table,tr,td{border:0;}
|
||||
ol,ul,li{ list-style-type:none}
|
||||
a:link,a:visited{text-decoration:none;color:#898989; }
|
||||
a:hover {color:#29bd8b;}
|
||||
/*万能清除浮动*/
|
||||
.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden;}
|
||||
.clearfix{clear:both;zoom:1}
|
||||
.cl{ clear: both; overflow: hidden;}
|
||||
/*通用浮动*/
|
||||
.fl{ float: left;}
|
||||
.fr{ float: right;}
|
||||
/*通用文字功能样式*/
|
||||
.font-bd{ font-weight: bold;}
|
||||
.color-red{ color:#d2322d;}
|
||||
.color-green{color:#51a74f;}
|
||||
.color-light-green{color:#29bd8b;}
|
||||
.color-blue{color:#6a8abe;}
|
||||
.color-orenge{color:#ee4a1f;}
|
||||
.color-yellow{color:#f0ad4e;}
|
||||
.color-grey{color:#888;}
|
||||
.color_white{ color:#fff;}
|
||||
a.link-color-grey{color:#888;}
|
||||
a:hover.link-color-grey{color:#29bd8b;}
|
||||
a.link-color-green{color:#29bd8b;}
|
||||
a.link-color-blue{color:#6a8abe;}
|
||||
/*通用文字大小样式*/
|
||||
.font-12{ font-size: 12px;}
|
||||
.font-14{ font-size: 14px;}
|
||||
.font-16{ font-size: 16px;}
|
||||
.font-18{ font-size: 18px;}
|
||||
.font-20{ font-size: 20px;}
|
||||
.font-24{ font-size: 24px;}
|
||||
.font-28{ font-size: 28px;}
|
||||
.font-30{ font-size: 30px;}
|
||||
/*通用内外边距*/
|
||||
.mt3{ margin-top:3px;}.mt5{ margin-top:5px;}.mt8{ margin-top:8px;}.mt10{ margin-top:10px;}.mt12{ margin-top:12px;}.mt15{ margin-top:15px;}.mt20{ margin-top:20px;}.mt25{ margin-top:25px;}.mt30{ margin-top:30px;}.mt50{ margin-top:50px;}
|
||||
.mb5{ margin-bottom: 5px;}.mb10{ margin-bottom: 10px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px;}
|
||||
.ml5{ margin-left: 5px;}.ml10{ margin-left: 10px;}.ml15{ margin-left: 15px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml50{ margin-left: 50px;}.ml230{ margin-left: 230px;}
|
||||
.mr5{ margin-right: 5px;}.mr10{ margin-right: 10px;}.mr15{ margin-right: 15px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right:30px;}
|
||||
.pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;}
|
||||
.pb5{ padding-bottom:5px;}.pb10{ padding-bottom:10px;}.pb15{ padding-bottom:15px;}.pb20{ padding-bottom:20px;}
|
||||
.pl5{ padding-left:5px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;}
|
||||
.pr5{ padding-right:5px;}.pr10{ padding-right:10px;}.pr15{ padding-right:15px;}.pr20{ padding-right:20px;}
|
||||
/*定位*/
|
||||
.pr{ position: relative;}
|
||||
/*块*/
|
||||
.col-width{ background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-10{ max-width: 100%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-9{ max-width: 90%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-8{ max-width: 80%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-7{ max-width: 70%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-6{ max-width: 60%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-5{ max-width: 50%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-4{ max-width: 40%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-3{ max-width: 30%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-2{ max-width: 20%; background: #fff; border:1px solid #e8e8e8;}
|
||||
.col-width-1{ max-width: 10%; background: #fff; border:1px solid #e8e8e8;}
|
||||
/*按钮*/
|
||||
a.task-btn{display: inline-block;border:none; padding:0 35px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 35px;line-height: 35px; border-radius:3px;}
|
||||
a:hover.task-btn {background: #c3c3c3; }
|
||||
a.task-btn-grey{background: #e1e1e1; cursor: pointer;}
|
||||
a:hover.task-btn-grey {background: #e1e1e1; }
|
||||
a.task-btn-green{background: #29bd8b; color: #fff;}
|
||||
a:hover.task-btn-green{background: #19b17e;}
|
||||
a.new-btn{display: inline-block;border:none; padding:0 10px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 30px;border-radius: 3px; line-height: 30px;}
|
||||
a.new-btn:hover{background: #c3c3c3; color: #333;}
|
||||
a.new-btn-green{background: #29bd8b; color: #fff;}
|
||||
a.new-btn-green:hover{background:#19b17e; }
|
||||
a.new-btn-blue{background: #6a8abe; color: #fff;}
|
||||
a.new-btn-blue:hover{background:#5f7cab; }
|
||||
a.new-bigbtn{display: inline-block;border:none; padding:2px 30px;color: #666;background: #e1e1e1; text-align:center;font-size: 14px; height: 30px;line-height: 30px; border-radius: 3px;}
|
||||
a:hover.new-bigbtn{background: #c3c3c3; color: #333;}
|
||||
a.new-bigbtn-green{background: #3b94d6; color: #fff;}
|
||||
a.new-bigbtn-green:hover{background: #2384cd; color: #fff;}
|
||||
a.task-btn-ver{ height:45px; line-height: 45px; background: #6a8abe; color: #fff; border-radius:5px; font-size:12px; padding:0 10px;}
|
||||
a.task-btn-ver-line{height:43px; line-height: 43px; border-radius:5px; font-size:12px; padding:0 10px; border:1px solid #ccc;}
|
||||
a:hover.task-btn-ver-line{ border:1px solid #29bd8b;}
|
||||
a:hover.task-btn-ver{background:#5f7cab;}
|
||||
a.rest-btn-ver{ background: #969696; color: #fff; cursor: not-allowed}
|
||||
a:hover.rest-btn-ver{ background: #969696;}
|
||||
.new_login_submit_disable{ width:265px; height:40px; line-height: 40px; background:#ccc; color:#fff; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
|
||||
a.new_login_submit{ display: inline-block; width:100%; height:45px; line-height: 45px; background:#29bd8b; color:#fff; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
|
||||
a.new_login_submit:hover{background: #19b17e;}
|
||||
/*提示条*/
|
||||
.alert{ padding:10px;border: 1px solid transparent; text-align: center;}
|
||||
.alert-blue{ background-color: #d9edf7;border-color: #bce8f1; color: #3a87ad;}
|
||||
.alert-orange{ background-color: #fff9e9;border-color: #f6d0b1; color:#ee4a20;}
|
||||
.alert-green{ background-color: #dff0d8;border-color: #d6e9c6; color:#3c763d;}
|
||||
.close{padding: 0;cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; font-size: 21px; font-weight: bold;line-height: 1; color: #000000; text-shadow: 0 1px 0 #ffffff; opacity: 0.3;}
|
||||
.close:hover{opacity: 0.5;}
|
||||
/*tag*/
|
||||
.task-tag{ padding:0 10px; text-align: center; display:inline-block; height:30px; line-height: 30px;}
|
||||
.tag-blue{ background-color: #d9edf7; color: #3a87ad;}
|
||||
.tag-grey{ background-color: #f3f5f7; color: #4d555d;}
|
||||
.tag-border-grey{ background-color: #fff;border-color: #e2e2e2; color: #888;}
|
||||
/****************************/
|
||||
/* 页面结构*/
|
||||
.task-pm-content{ width: 1000px; margin: 0 auto; }
|
||||
.task-pm-box{ width: 100%; background: #fff; border: 1px solid #e8e8e8;}
|
||||
.task-paner-con{ padding:15px; color:#666; line-height:2.0;}
|
||||
.task-text-center{ text-align: center;}
|
||||
.flow_hidden{ width:300px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
||||
/*pre标签换行*/
|
||||
.break_word{word-break: break-all;word-wrap: break-word;}
|
||||
.break_word_firefox{white-space: pre-wrap !important;word-break: break-all;}
|
||||
|
||||
.none{ display: none; }
|
||||
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
|
||||
/* 头部 */
|
||||
.header{ width:100%; height:51px;background:#46484c; }
|
||||
.header_con{ width:1200px; height:50px; margin:0 auto; }
|
||||
.new-logo img{ width: 45px; height: 45px; margin-top:3px;}
|
||||
.new-logo p{ font-size: 18px; color:#fff; line-height: 50px; }
|
||||
a.new-nav-a{ display: block; font-size: 14px; line-height: 50px; color:#fff;}
|
||||
a:hover.new-nav-a{ color:#3b94d6;}
|
||||
input.new-search{border-radius:3px; width:300px; height:30px; margin-top: 10px; padding:0 5px; border-style: none; border: solid 1px #ccc;}
|
||||
/* 登录注册 */
|
||||
.new_login{ width:100%; background:#f5f9fc; color:#666; padding-bottom:50px; font-size:14px;}
|
||||
.new_login_con{ width:1300px; margin:0 auto; background:#fff; border:1px solid #e8e8e8; padding:50px 0; }
|
||||
.new_login_box{width:350px; padding:30px; border-radius:5px; margin:0 auto; border:solid 1px #fff;}
|
||||
.new_login_h2{ font-size:18px; border-bottom:1px solid #fff; font-weight:normal; padding-bottom:5px; margin-bottom:30px;}
|
||||
.new_login_h2 a{font-size:12px; background:url(/images/icons_login.png) 0 -69px no-repeat; padding-left:10px;}
|
||||
input.new_loggin_input{ -webkit-box-shadow: 0 0 0px 1000px white inset; outline: none;width:295px; height:43px; border-radius:5px; padding-left:5px; line-height: 43px; font-size:14px; border: none; color:#666;}
|
||||
input.new_loggin_input_test{ -webkit-box-shadow: 0 0 0px 1000px white inset; outline: none;width:260px; height:45px; border-radius:5px; padding-left:5px; line-height: 45px; font-size:14px; border:1px solid #ccc;}
|
||||
.new_loggin_users{width:348px;height:43px;border-radius:5px; border:1px solid #ccc; position: relative; }
|
||||
.new_login_lock{background:#fff url(/images/icons_login.png) 8px -28px no-repeat; width:265px; height:45px; border-radius:5px; border:none;}
|
||||
.new_register_li{background:#fff; width:265px; height:45px; border-radius:5px; border:none;}
|
||||
.new_login_form ul li{ margin-bottom:20px; }
|
||||
|
||||
.new_login_check{ width:15px; height:15px; border:1px solid #fff; border-style:none; margin-right:5px; vertical-align: -2px;}
|
||||
.new_login_form label{ }
|
||||
.new_login_form a{ text-decoration:underline;}
|
||||
.new_register{ width:100%; height:550px; background:#46484c; padding-top:80px;}
|
||||
.new_register_con{width:1200px; height:550px; margin:0 auto; }
|
||||
.new_login_txt{width:450px; height:140px; padding:30px 12px 0; color:#fff; margin:100px 0 0 100px;}
|
||||
.new_login_txt h3{ font-size:24px; text-align:center; margin-bottom:20px;}
|
||||
.new_login_txt p{ line-height:2.0; font-size: 16px;}
|
||||
.new_register_left{ margin-top:150px;}
|
||||
.new_login_tishi{ color: #fff; }
|
||||
/* 展示内容 */
|
||||
.new-container{ width: 100%;}
|
||||
.new-container-inner{width:1200px; margin:0px auto; padding:100px 0;}
|
||||
.inner-txt{ width:300px;}
|
||||
.inner-txt-h3{ font-size: 18px; color: #333; margin-bottom:20px;}
|
||||
.inner-txt-p{font-size: 14px; color: #666; margin-bottom:20px;}
|
||||
.back-color-grey{ background:#f5f5f5;}
|
||||
.guanzhu-box{ position: relative;}
|
||||
.img-guanzhu{ position: absolute; top:0; left: 0;}
|
||||
.guanzhu-img-box{ display: none;}
|
||||
.guanzhu-box li:hover ul{display:block; }
|
||||
/* 底部 */
|
||||
.footer{width:100%; height:100px; background-color:#fff; }
|
||||
.footer_con{ width:1200px; height:100px; margin:0 auto; text-align: center; padding:20px 0; }
|
||||
.footer_con-inner{ width: 300px; margin:0px auto;}
|
||||
.footer_con-inner li{ }
|
||||
.footer_con-inner li a{ font-size: 16px; color: #888;display: block;padding:0 15px; border-right: solid 1px #888;}
|
||||
.footer_con-inner li a:hover{text-decoration: underline;}
|
||||
.footer_con-p{ color: #888; margin-top:10px;}
|
||||
/* 微信登录扫描新增20170103byLB */
|
||||
.new_login_weixin {border-bottom:1px solid #ddd; width: 100%;}
|
||||
.new_login_weixin li {float:left; width:50%; padding:5px 0; display:inline-block; text-align:center; }
|
||||
.new_login_weixin li a{font-size:18px;}
|
||||
.login_weixin_nav_hover{border-bottom:3px solid #29bd8b; }
|
||||
.login_weixin_nav_nomal { }
|
||||
.undis {display:none;}
|
||||
.dis {display:block;}
|
||||
.code_wxbox{ width:350px; text-align: center; padding:30px 0;}
|
||||
.wx_img{ width: 150px; margin:10px auto 10px; }
|
||||
a.wx_help{ }
|
||||
a:hover.wx_help{ text-decoration: underline;}
|
||||
.hidetips{ }
|
||||
.hidetips:hover{ }
|
||||
|
||||
/* 新版内页 */
|
||||
.innner-nav li{ float: left; margin-right: 25px;}
|
||||
.inner-banner{ background:url(/images/inner/banner-inner.jpg) 0px 0px no-repeat; width: 100%; height: 550px; padding-top:50px;}
|
||||
.inner-banner-con{ width: 1200px; margin: 0px auto; color:#fff; text-align: center;}
|
||||
.inner-banner-con h2{ font-size: 60px; font-weight: normal;}
|
||||
.inner-banner-con-h3{font-size: 24px; font-weight: normal; color: #fff;}
|
||||
.inner-c_blue{ color:#3b94d6;}
|
||||
a.btn-blue{ display: block; width:265px; height:40px; line-height: 40px; background:#3b94d6; color:#fff; font-size:14px; border-radius:5px; text-align:center;border: 3px solid #3b94d6; font-weight: bold; }
|
||||
a:hover.btn-blue{background: #2384cd; border: 3px solid #2384cd;}
|
||||
a.btn-blue-line{ display: block; width:265px; height:40px; line-height: 40px; border: 3px solid #3b94d6; color:#3b94d6; font-size:14px; border-radius:5px; text-align:center; font-weight: bold; }
|
||||
a:hover.btn-blue-line{background: #3b94d6; color:#fff;}
|
||||
.inner-btnbox{ width: 580px; margin: 30px auto;}
|
||||
.innner-banner-bottom{ width: 300px; text-align: left; float: left; margin-top: 50px; font-size: 14px;}
|
||||
.inner-border{ display: block; width: 100px; border-top:3px solid #fff; margin-bottom: 15px;}
|
||||
.new-container-inner-h3{ font-size:40px; font-weight: normal; color: #333; text-align: center; margin-bottom: 20px;}
|
||||
.innerbox-txt{ width:300px;}
|
||||
.innerbox-txt-h3{ font-size:24px; color: #333; margin-bottom:20px;}
|
||||
.innerbox-txt-p{font-size: 16px; color: #666; margin-bottom:20px;}
|
||||
.back-color-black{ background:#47494d;}
|
||||
.inner-t-c{ text-align: center;}
|
||||
.inner-footer{ width: 100%; background:#323232; height:155px;}
|
||||
.inner-footer_con{ width: 1200px; margin: 0 auto;}
|
||||
.inner-footer-nav{ height: 50px; border-bottom:1px solid #47494d;}
|
||||
.inner-footer-nav li a{ float: left; margin-right:15px; font-size: 14px; color: #888; line-height: 50px;}
|
||||
.saoma-box{ position: relative;}
|
||||
.img-saoma{ }
|
||||
.saoma-img-box{ position: absolute; top:-300px; left: -95px; border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); display: none;}
|
||||
.saoma-box li:hover ul{display:block; }
|
||||
.img-show{ width:50px; height:50px; border-radius:50px; }
|
||||
.saoma-img-box font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.inner-footer-p-big{ display: block; height: 50px; line-height: 50px; color:#888; font-size: 16px; border-left:2px solid #888; padding-left:15px;}
|
||||
.inner-btnbox02{ width:270px; margin: 30px auto 0;}
|
||||
.new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;}
|
||||
.inner-nav-mes{ font-size:28px; color: #fff; position: relative; margin-top:3px; margin-right:35px;}
|
||||
.inner-nav-cir{ position: absolute; top:0px; left:15px; background:#3b94d6; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size: 10px;}
|
||||
.inner-nav-user{ width: 40px; height: 40px; margin-top:5px; position: relative;}
|
||||
.inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;}
|
||||
.inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);}
|
||||
/*消息弹框*/
|
||||
.shadowbox_news{ width:305px; background-color:#fff; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 12px; top:50px; left:-135px;display: none; z-index:999;}
|
||||
.shadowbox_news_title{ height:40px; line-height:40px;padding-left:10px; font-size:12px; color:#333;border-bottom:1px solid #eee;}
|
||||
.shadowbox_news font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left: 140px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.shadowbox_news_list{ max-height:200px; overflow:hidden;}
|
||||
.shadowbox_news_list a{ color:#999;}
|
||||
.shadowbox_news_list li{ height:40px; border-bottom:1px dashed #ebebeb; line-height:40px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis; padding:0 10px;}
|
||||
.shadowbox_news_list li:hover{ background-color:#eee;}
|
||||
a.shadowbox_news_user{ color:#3b94d6;}
|
||||
a.shadowbox_news_all{ display:block; width:305px; height:40px; line-height:40px; color:#3b94d6; text-align:center;border-top:1px solid #eee;}
|
||||
.inner-nav-mes li:hover ul{ display: block;};
|
||||
|
||||
.inner-user-info{ border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); width:305px; display:block; width:300px; display: none;}
|
||||
.inner-user-info font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.inner-user-info li a{ display: block; height: 30px; line-height: 30px; color: #fff; width: 200px; }
|
||||
|
||||
.inner-img02{ width: 1000px; margin:0 auto;}
|
||||
.inner-txtbox02{width: 800px; margin:0 auto;}
|
||||
.inner-txtbox02 p{ display: block; width: 200px; font-size: 20px; float: left; margin-top:30px; text-align: center; color:#666;}
|
||||
.innerbox-txt-h3{ font-size:28px; color: #333; margin-bottom:20px;}
|
||||
.innerbox-txt-p{font-size: 20px; color: #666; margin-bottom:20px;}
|
||||
|
||||
/*邮件激活*/
|
||||
.task-email-box{ width:450px; margin:0 auto; background:#fff;}
|
||||
.task-email-box-pd{ padding:30px; color:#666;}
|
||||
.task-mail-img{ width:40px; height: 40px; border-radius:100px; border:2px solid #ccc; }
|
||||
.task-name{ display: inline-block; max-width: 100px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
||||
.task-img-box{ width:265px;}
|
||||
|
||||
.new-login-header{ width: 1300px; margin:0 auto; height:70px;}
|
||||
.new-login-header h2{ line-height: 70px; color:#666;}
|
||||
.new-login-error{ display: inline-block; background-color:#fffafa; box-shadow: 0px 2px 8px rgba(255, 217, 217, 0.5); border:1px solid #ffd9d9; padding:5px; border-radius:5px; color:#dd6f75; width: 235px; position: absolute; left:360px; top:3px;}
|
||||
.password-header{ width: 1300px; margin: 0 auto; background: #fff; border: 1px solid #e8e8e8; border-bottom:none; padding:15px 0;}
|
||||
.new-loggin-other{ width:350px; text-align: center; padding-top:30px; border-top: 1px solid #e8e8e8;}
|
||||
.task-img-weixin{ width: 50px; height: 50px; border-radius:100px; background:#ccc; }
|
||||
.task-img-weixin:hover{ background:#86c610;}
|
||||
.new-login-success{ text-align: center;}
|
||||
|
||||
.drag_slider{ position: relative; background-color: #e8e8e8; width: 350px; height: 45px; line-height: 45px; text-align: center;}
|
||||
.drag_slider .handler{ position: absolute; top: 0px; left: 0px; width: 50px; height: 43px; border: 1px solid #ccc; cursor: move;}
|
||||
.handler_bg{ background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTEyNTVEMURGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTEyNTVEMUNGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MTc5NzNmZS02OTQxLTQyOTYtYTIwNi02NDI2YTNkOWU5YmUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YiRG4AAAALFJREFUeNpi/P//PwMlgImBQkA9A+bOnfsIiBOxKcInh+yCaCDuByoswaIOpxwjciACFegBqZ1AvBSIS5OTk/8TkmNEjwWgQiUgtQuIjwAxUF3yX3xyGIEIFLwHpKyAWB+I1xGSwxULIGf9A7mQkBwTlhBXAFLHgPgqEAcTkmNCU6AL9d8WII4HOvk3ITkWJAXWUMlOoGQHmsE45ViQ2KuBuASoYC4Wf+OUYxz6mQkgwAAN9mIrUReCXgAAAABJRU5ErkJggg==") no-repeat center;}
|
||||
.handler_ok_bg{ background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDlBRDI3NjVGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDlBRDI3NjRGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphNWEzMWNhMC1hYmViLTQxNWEtYTEwZS04Y2U5NzRlN2Q4YTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==") no-repeat center;}
|
||||
.drag_slider .drag_bg{ background-color: #29bd8b; height: 45px; width: 0px;}
|
||||
.drag_slider .drag_text{ position: absolute; top: 0px; width: 350px; -moz-user-select: none; -webkit-user-select: none; user-select: none; -o-user-select:none; -ms-user-select:none;}
|
|
@ -0,0 +1,6 @@
|
|||
/* 修改密码成功弹框 */
|
||||
.task-popup{background: #fff; border:1px solid #e8e8e8; border-radius:3px; -webkit-box-shadow:0 0 10px #ccc; -moz-box-shadow:0 0 10px #ccc; box-shadow:0 0 10px #ccc;}
|
||||
.task-popup-text-center{ text-align: center; color: #666;}
|
||||
.task-popup-title{ border-bottom: 1px solid #eee; padding:10px 15px; }
|
||||
.task-popup-content{ padding:15px;}
|
||||
.task-popup-submit{ margin:15px auto; width: 200px;}
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
|
||||
/* 新版展示内页 */
|
||||
.innner-nav li{ float: left; margin-right: 25px;}
|
||||
.inner-banner{ background:url(/images/inner/banner-inner.jpg) 0px 0px no-repeat; width: 100%; height: 550px; padding-top:50px;}
|
||||
.inner-man{ position: absolute; right:100px; top:115px;}
|
||||
.inner-man img{width:200px; }
|
||||
.inner-banner-con{ width: 1200px; margin: 0px auto; color:#fff; text-align: center;}
|
||||
.inner-banner-con h2{ font-size: 60px; font-weight: normal;}
|
||||
.inner-banner-con-h3{font-size: 24px; font-weight: normal; color: #fff;}
|
||||
.inner-c_blue{ color:#3b94d6;}
|
||||
a.btn-blue{ display: block; width:265px; height:40px; line-height: 40px; background:#3b94d6; color:#fff; font-size:14px; border-radius:5px; text-align:center;border: 3px solid #3b94d6; font-weight: bold; }
|
||||
a:hover.btn-blue{background: #2384cd; border: 3px solid #2384cd;}
|
||||
a.btn-blue-line{ display: block; width:265px; height:40px; line-height: 40px; border: 3px solid #3b94d6; color:#3b94d6; font-size:14px; border-radius:5px; text-align:center; font-weight: bold; }
|
||||
a:hover.btn-blue-line{background: #3b94d6; color:#fff;}
|
||||
.inner-btnbox{ width: 580px; margin: 30px auto;}
|
||||
.innner-banner-bottom{ width: 300px; text-align: left; float: left; margin-top: 50px; font-size: 14px;}
|
||||
.inner-border{ display: block; width: 100px; border-top:3px solid #fff; margin-bottom: 15px;}
|
||||
.new-container-inner-h3{ font-size:40px; font-weight: normal; color: #333; text-align: center; margin-bottom: 20px;}
|
||||
.innerbox-txt{ width:300px;}
|
||||
.innerbox-txt-h3{ font-size:24px; color: #333; margin-bottom:20px;}
|
||||
.innerbox-txt-p{font-size: 16px; color: #666; margin-bottom:20px;}
|
||||
.back-color-black{ background:#47494d;}
|
||||
.inner-t-c{ text-align: center;}
|
||||
.inner-footer{ width: 100%; background:#323232; height:155px;}
|
||||
.inner-footer_con{ width: 1200px; margin: 0 auto;}
|
||||
.inner-footer-nav{ height: 50px; border-bottom:1px solid #47494d;}
|
||||
.inner-footer-nav li a{ float: left; margin-right:15px; font-size: 14px; color: #888; line-height: 50px;}
|
||||
.saoma-box{ position: relative;}
|
||||
.img-saoma{ }
|
||||
.saoma-img-box{ position: absolute; top:-300px; left: -95px; border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); display: none;}
|
||||
.saoma-box li:hover ul{display:block; }
|
||||
.img-show{ width:50px; height:50px; border-radius:50px; }
|
||||
.saoma-img-box font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.inner-footer-p-big{ display: block; height: 50px; line-height: 50px; color:#888; font-size: 16px; border-left:2px solid #888; padding-left:15px;}
|
||||
.inner-btnbox02{ width:270px; margin: 30px auto 0;}
|
||||
.new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;}
|
||||
.inner-nav-mes{ font-size:28px; color: #fff; position: relative; margin-top:3px; margin-right:35px;}
|
||||
.inner-nav-cir{ position: absolute; top:0px; left:15px; background:#3b94d6; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size: 10px;}
|
||||
.inner-nav-user{ width: 40px; height: 40px; margin-top:5px; position: relative;}
|
||||
.inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;}
|
||||
.inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);}
|
||||
/*消息弹框*/
|
||||
.shadowbox_news{ width:305px; background-color:#fff; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 12px; top:50px; left:-135px;display: none; z-index:999;}
|
||||
.shadowbox_news_title{ height:40px; line-height:40px;padding-left:10px; font-size:12px; color:#333;border-bottom:1px solid #eee;}
|
||||
.shadowbox_news font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left: 140px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.shadowbox_news_list{ max-height:200px; overflow:hidden;}
|
||||
.shadowbox_news_list a{ color:#999;}
|
||||
.shadowbox_news_list li{ height:40px; border-bottom:1px dashed #ebebeb; line-height:40px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis; padding:0 10px;}
|
||||
.shadowbox_news_list li:hover{ background-color:#eee;}
|
||||
a.shadowbox_news_user{ color:#3b94d6;}
|
||||
a.shadowbox_news_all{ display:block; width:305px; height:40px; line-height:40px; color:#3b94d6; text-align:center;border-top:1px solid #eee;}
|
||||
.inner-nav-mes li:hover ul{ display: block;}
|
||||
|
||||
.inner-user-info{ border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); width:305px; display:block; width:300px; display: none;}
|
||||
.inner-user-info font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.inner-user-info li a{ display: block; height: 30px; line-height: 30px; color: #fff; width: 200px; }
|
||||
|
||||
.inner-img02{ width: 1000px; margin:0 auto;}
|
||||
.inner-txtbox02{width: 800px; margin:0 auto;}
|
||||
.inner-txtbox02 p{ display: block; width: 200px; font-size: 20px; float: left; margin-top:30px; text-align: center; color:#666;}
|
||||
.innerbox-txt-h3{ font-size:28px; color: #333; margin-bottom:20px;}
|
||||
.innerbox-txt-p{font-size: 20px; color: #666; margin-bottom:20px;}
|
File diff suppressed because it is too large
Load Diff
|
@ -39,6 +39,8 @@ a.new-btn{display: inline-block;border:none; padding:0 10px;color: #666;backgrou
|
|||
a.new-btn:hover{background: #c3c3c3; color: #333;}
|
||||
a.new-btn-green{background: #3b94d6; color: #fff;}
|
||||
a.new-btn-green:hover{background: #2384cd; color: #fff;}
|
||||
a.new-btn-blue{background: #6a8abe; color: #fff;}
|
||||
a.new-btn-blue:hover{background:#5f7cab; }
|
||||
a.new-bigbtn{display: inline-block;border:none; padding:2px 30px;color: #666;background: #e1e1e1; text-align:center;font-size: 14px; height: 30px;line-height: 30px; border-radius: 3px;}
|
||||
a:hover.new-bigbtn{background: #c3c3c3; color: #333;}
|
||||
a.new-bigbtn-green{display: block; background:#60B25E; color:#fff; border-radius:5px; text-align:center; font-size:18px; padding: 5px 20px; width: 220px;}
|
||||
|
@ -117,7 +119,7 @@ a:hover.btn-blue-line{background: #3b94d6; color:#fff;}
|
|||
.innerbox-txt{ width:300px;}
|
||||
.back-color-black{ background:#47494d;}
|
||||
.inner-t-c{ text-align: center;}
|
||||
.inner-footer{ width: 100%;min-width: 1200px; background:#323232; padding-bottom:30px;}
|
||||
.inner-footer{ width: 100%; background:#323232; height:155px;}
|
||||
.inner-footer_con{ width: 1200px; margin: 0 auto;}
|
||||
.inner-footer-nav{ height: 50px; border-bottom:1px solid #47494d;}
|
||||
.inner-footer-nav li a{ float: left; margin-right:15px; font-size: 14px; color: #888; line-height: 50px;}
|
||||
|
|
|
@ -68,7 +68,7 @@ a.resourcesTypeUser {background:url(../images/homepage_icon.png) -178px -453px n
|
|||
.softwareIcon {background:url(/images/hwork_icon.png) -5px -254px no-repeat; padding-left:23px;}
|
||||
/*意见反馈*/
|
||||
html{ overflow-x:auto;}
|
||||
.scrollsidebar{ position: fixed; bottom:1px; right:1px; background:none; }
|
||||
.scrollsidebar{ position: fixed; bottom:1px; right:1px; background:none; z-index: 99;}
|
||||
.side_content{width:180px; height:auto; overflow:hidden; float:left;}
|
||||
.side_content .side_list {width:180px;overflow:hidden;}
|
||||
.show_btn{ width:0; height:100px; overflow:hidden; float:left; margin-top:200px; cursor:pointer; background-color:#fff;}
|
||||
|
|
|
@ -273,7 +273,7 @@ a:hover.qx_btn{color:#3b94d6;}
|
|||
.navHomepageMenu:hover {background-color:#2182ca;}
|
||||
.navHomepageSearchBoxcontainer {margin-top:11px;}
|
||||
.navHomepageSearchBox {width:340px; border:none; outline:none; height:32px; background-color:#ffffff;}
|
||||
#navHomepageSearch{margin-top: 11px;background-color: white; }
|
||||
#navHomepageSearch{background-color: white; }
|
||||
.navHomepageSearchInput {width:345px; height:32px; outline:none; border:none !important; float:left; padding-left:5px !important; margin:0;}
|
||||
#navSearchAlert {display:none;}
|
||||
.navHomepageNews {width:30px; display:block; float:right; margin-top:8px; position:relative;}
|
||||
|
@ -441,7 +441,7 @@ a.f_grey {color:#666666;}
|
|||
a.f_grey:hover {color:#000000;}
|
||||
|
||||
/* 底部 */
|
||||
.inner-footer{ width: 100%; background:#323232; padding-bottom:30px;}
|
||||
.inner-footer{ width: 100%; background:#323232; height:155px;}
|
||||
.inner-footer_con{ width: 1200px; margin: 0 auto;}
|
||||
.inner-footer-nav{ height: 50px; border-bottom:1px solid #47494d;}
|
||||
.inner-footer-nav li a{ float: left; margin-right:15px; font-size: 14px; color: #888; line-height: 50px;}
|
||||
|
@ -558,4 +558,6 @@ input.new-search{border-radius:3px; width:300px; height:30px; margin-top: 10px;
|
|||
a.new-btn{display: inline-block;border:none; padding:0 10px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 30px;border-radius: 3px; line-height: 30px;}
|
||||
a.new-btn:hover{background: #c3c3c3; color: #333;}
|
||||
a.new-btn-green{background: #3b94d6; color: #fff;}
|
||||
a.new-btn-green:hover{background: #2384cd; color: #fff;}
|
||||
a.new-btn-green:hover{background: #2384cd; color: #fff;}
|
||||
a.new-btn-blue{background: #6a8abe; color: #fff;}
|
||||
a.new-btn-blue:hover{background:#5f7cab; }
|
Before Width: | Height: | Size: 193 KiB After Width: | Height: | Size: 193 KiB |
|
@ -903,7 +903,7 @@ a.f_grey {color:#666666;}
|
|||
a.f_grey:hover {color:#000000;}
|
||||
/*意见反馈*/
|
||||
html{ overflow-x:hidden;}
|
||||
.scrollsidebar{ position: fixed; bottom:1px; right:1px; background:none; }
|
||||
.scrollsidebar{ position: fixed; bottom:1px; right:1px; background:none; z-index: 99;}
|
||||
.side_content{width:154px; height:auto; overflow:hidden; float:left; }
|
||||
.side_content .side_list {width:154px;overflow:hidden;}
|
||||
.show_btn{ width:0; height:112px; overflow:hidden; float:left; margin-top:200px; cursor:pointer;}
|
||||
|
|
|
@ -288,7 +288,7 @@ a:hover.search_btn{ background: #0fa9bb;}
|
|||
.footlogo{ width:580px; margin:0 auto;height:50px; }
|
||||
/*意见反馈*/
|
||||
html{ overflow-x:hidden;}
|
||||
.scrollsidebar{ position: fixed; bottom:1px; right:1px; background:none; }
|
||||
.scrollsidebar{ position: fixed; bottom:1px; right:1px; background:none; z-index: 99;}
|
||||
.side_content{width:154px; height:auto; overflow:hidden; float:left; }
|
||||
.side_content .side_list {width:154px;overflow:hidden;}
|
||||
.show_btn{ width:0; height:112px; overflow:hidden; float:left; margin-top:190px;cursor:pointer;}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
FactoryGirl.define do
|
||||
factory :verification_code do
|
||||
code "MyString"
|
||||
code_type 1
|
||||
status 1
|
||||
phone "MyString"
|
||||
email "MyString"
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe VerificationCode, :type => :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
Loading…
Reference in New Issue