www.lightcourse.com/public/static/plugins/common.js

1422 lines
26 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

$(function() {
var controller = $('#search ul.tab').attr('dstype');
$('#search ul.tab li span').eq(0).html('商品');
$('#search-form').attr("action", HOMESITEURL + "/Search/index.html");
$('#search').hover(function() {
$('#search ul.tab li').eq(1).show();
$('#search ul.tab li i').addClass('over').removeClass('arrow');
}, function() {
$('#search ul.tab li').eq(1).hide();
$('#search ul.tab li i').addClass('arrow').removeClass('over');
});
$('#search ul.tab li').eq(1).click(function() {
$(this).hide();
$('#keyword').attr('placeholder', '请输入您要搜索的商品关键字');
$('#search ul.tab li span').eq(0).html('商品');
$('#search-form').attr("action", HOMESITEURL+"/Search/index.html");
$("#keyword").focus();
});
});
/**
*
* @param {type} formid form表单ID
* @param {type} type 返回类型 reload 刷新当前界面 default 保持默认状态不做刷新
* @param {type} url 跳转的连接地址
* @param {type} time 跳转的时间
* @returns {undefined}
*/
function ds_ajaxpost(formid,type,url,waittime){
if (typeof(waittime) == "undefined"){
waittime = 1000;
}
var _form = $("#"+formid);
$.ajax({
type: "POST",
url: _form.attr('action'),
data: _form.serialize(),
dataType:"json",
success: function (res) {
// layer.msg(res.message, {time: waittime}, function () {
if (res.code == 10000) {
if (typeof (type) == 'undefined' && type == null && type == '') {
location.reload();
} else if(type=='url') {
location.href = url;
} else if(type=='default') {
//不做操作只显示
}else{
location.reload();
}
}
// });
}
});
}
/**
*
* @param {type} url URL链接地址
* @param {type} type 返回类型 reload remove(移除指定行) default默认不做任何操作
* @param {type} param 参数
* @returns {undefined}
*/
function ds_ajaxget(url,type,param)
{
$.ajax({
url: url,
type: "get",
dataType: "json",
success: function (data) {
layer.msg(data.message, {time: 1000}, function () {
if (data.code == 10000) {
if (typeof (type) == "undefined" || type == null || type == '' || type=='reload') {
location.reload();
} else if (type == "remove") {
$("#ds_row_" + param).remove();
}else {
//不做操作
}
}
});
}
});
}
/**
*
* @param {type} url URL链接地址
* @param {type} msg 显示提示内容
* @param {type} type 返回类型 reload remove(移除指定行) default默认不做任何操作
* @param {type} param 参数
* @returns {undefined}
*/
function ds_ajaxget_confirm(url,msg,type,param) {
if (typeof (msg) != 'undefined' && msg != null && msg != '') {
layer.confirm(msg, {
btn: ['确定', '取消'],
title: false,
}, function () {
ds_ajaxget(url,type,param);
});
}else{
ds_ajaxget(url,type,param);
}
}
/**
*
* @param {type} msg 显示提示
* @param {type} url 跳转URL
* @returns {undefined}
*/
function ds_get_confirm(msg, url){
if(msg != ''){
layer.confirm(msg, {
btn: ['确定', '取消'],
title: false,
}, function () {
window.location = url;
});
}else{
window.location = url;
}
}
function go(url){
window.location = url;
}
/* 格式化金额 */
function price_format(price){
if(typeof(PRICE_FORMAT) == 'undefined'){
PRICE_FORMAT = '¥%s';
}
price = number_format(price, 2);
return price;
}
function number_format(num, ext){
if(ext < 0){
return num;
}
num = Number(num);
if(isNaN(num)){
num = 0;
}
var _str = num.toString();
var _arr = _str.split('.');
var _int = _arr[0];
var _flt = _arr[1];
if(_str.indexOf('.') == -1){
/* 找不到小数点,则添加 */
if(ext == 0){
return _str;
}
var _tmp = '';
for(var i = 0; i < ext; i++){
_tmp += '0';
}
_str = _str + '.' + _tmp;
}else{
if(_flt.length == ext){
return _str;
}
/* 找得到小数点,则截取 */
if(_flt.length > ext){
_str = _str.substr(0, _str.length - (_flt.length - ext));
if(ext == 0){
_str = _int;
}
}else{
for(var i = 0; i < ext - _flt.length; i++){
_str += '0';
}
}
}
return _str;
}
/* 火狐下取本地全路径 */
function getFullPath(obj)
{
if(obj)
{
//ie
if (window.navigator.userAgent.indexOf("MSIE")>=1)
{
obj.select();
if(window.navigator.userAgent.indexOf("MSIE") == 25){
obj.blur();
}
return document.selection.createRange().text;
}
//firefox
else if(window.navigator.userAgent.indexOf("Firefox")>=1)
{
if(obj.files)
{
//return obj.files.item(0).getAsDataURL();
return window.URL.createObjectURL(obj.files.item(0));
}
return obj.value;
}
return obj.value;
}
}
/* 转化JS跳转中的 */
function transform_char(str)
{
if(str.indexOf('&'))
{
str = str.replace(/&/g, "%26");
}
return str;
}
//图片垂直水平缩放裁切显示
(function($){
$.fn.VMiddleImg = function(options) {
var defaults={
"width":null,
"height":null
};
var opts = $.extend({},defaults,options);
return $(this).each(function() {
var $this = $(this);
var objHeight = $this.height(); //图片高度
var objWidth = $this.width(); //图片宽度
var parentHeight = opts.height||$this.parent().height(); //图片父容器高度
var parentWidth = opts.width||$this.parent().width(); //图片父容器宽度
var ratio = objHeight / objWidth;
if (objHeight > parentHeight && objWidth > parentWidth) {
if (objHeight > objWidth) { //赋值宽高
$this.width(parentWidth);
$this.height(parentWidth * ratio);
} else {
$this.height(parentHeight);
$this.width(parentHeight / ratio);
}
objHeight = $this.height(); //重新获取宽高
objWidth = $this.width();
if (objHeight > objWidth) {
$this.css("top", (parentHeight - objHeight) / 2);
//定义top属性
} else {
//定义left属性
$this.css("left", (parentWidth - objWidth) / 2);
}
}
else {
if (objWidth > parentWidth) {
$this.css("left", (parentWidth - objWidth) / 2);
}
$this.css("top", (parentHeight - objHeight) / 2);
}
});
};
})(jQuery);
function ResizeImage(ImgD,FitWidth,FitHeight){
var image=new Image();
image.src=ImgD.src;
if(image.width>0 && image.height>0)
{
if(image.width/image.height>= FitWidth/FitHeight)
{
if(image.width>FitWidth)
{
ImgD.width=FitWidth;
ImgD.height=(image.height*FitWidth)/image.width;
}
else
{
ImgD.width=image.width;
ImgD.height=image.height;
}
}
else
{
if(image.height>FitHeight)
{
ImgD.height=FitHeight;
ImgD.width=(image.width*FitHeight)/image.height;
}
else
{
ImgD.width=image.width;
ImgD.height=image.height;
}
}
}
}
function trim(str) {
return (str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, '');
}
//弹出框登录
function login_dialog(){
CUR_DIALOG = ajax_form('login','登录',HOMESITEURL+'/Login/login.html?inajax=1',360,1);
}
/* 显示Ajax表单 */
function ajax_form(id, title, url, width, model)
{
if (!width) width = 480;
if (!model) model = 1;
var d = DialogManager.create(id);
d.setTitle(title);
d.setContents('ajax', url);
d.setWidth(width);
d.show('center',model);
return d;
}
//显示一个内容为自定义HTML内容的消息
function html_form(id, title, _html, width, model) {
if (!width) width = 480;
if (!model) model = 0;
var d = DialogManager.create(id);
d.setTitle(title);
d.setContents(_html);
d.setWidth(width);
d.show('center',model);
return d;
}
//收藏商品js
function collect_goods(fav_id, jstype, jsobj) {
$.get(HOMESITEURL+'/Index/login.html', function(result) {
if (result == '0') {
//login_dialog();
$(".tips-wrap").addClass("show")
} else {
var url = HOMESITEURL+'/Memberfavorites/favoritesgoods';
$.getJSON(url, {'fid': fav_id}, function(data) {
if (data.done)
{
layer.msg(data.msg);
if (jstype == 'count') {
$('[dstype="' + jsobj + '"]').each(function() {
$(this).html(parseInt($(this).text()) + 1);
});
}
if (jstype == 'succ') {
$('[dstype="' + jsobj + '"]').each(function() {
$(this).html("收藏成功");
});
}
}
else
{
layer.msg(data.msg);
}
});
}
});
}
//加载购物车信息
function load_cart_information() {
$.getJSON(HOMESITEURL + '/Cart/ajax_load', function(result) {
var obj = $('.header .user_menu .my-cart');
var mini =$('#rtoolbar_cartlist');
if (result) {
var html = '';
if (result.cart_goods_num > 0) {
for (var i in result['list']) {
var goods = result['list'][i];
html += '<dl id="cart_item_' + goods['cart_id'] + '"><dt class="goods-name"><a href="' + goods['goods_url'] + '">' + goods['goods_name'] + '</a></dt>';
html += '<dd class="goods-thumb"><a href="' + goods['goods_url'] + '" title="' + goods['goods_name'] + '"><img src="' + goods['goods_image'] + '"></a></dd>';
html += '<dd class="goods-sales"></dd>';
html += '<dd class="goods-price"><em>&yen;' + goods['goods_price'] + '×' + goods['goods_num'] + '</dd>';
html += '<dd class="handle"><a href="javascript:void(0);" onClick="drop_topcart_item(' + goods['cart_id'] + ',' + goods['goods_id'] + ');">删除</a></dd>';
html += "</dl>";
}
// obj.find('.incart-goods').html(html);
// obj.find('.incart-goods-box').perfectScrollbar('destroy');
// obj.find('.incart-goods-box').perfectScrollbar({suppressScrollX: true});
html = "共<i>" + result.cart_goods_num + "</i>种商品&nbsp;&nbsp;总计金额:<em>&yen;" + result.cart_all_price + "</em>";
obj.find('.total-price').html(html);
mini.find('.total-price').html('<p>共<em class="goods-price" style="margin-left: 5px">' + result.cart_goods_num + '</em>种商品</p><p>共计:<em class="goods-price">&yen;' + result.cart_all_price + '</em></p>');
if (obj.find('.addcart-goods-num').size() == 0) {
obj.append('<div class="addcart-goods-num">0</div>');
}
obj.find('.addcart-goods-num').html(result.cart_goods_num);
$('#rtoobar_cart_count').html(result.cart_goods_num).show();
} else {
html = "<div class='no-order'><span>您的购物车中暂无商品,赶快选择心爱的商品吧!</span></div>";
obj.find('.incart-goods').html(html);
mini.find('.total-price').html(html);
obj.find('.total-price').html('');
if (obj.find('.addcart-goods-num').size() == 0) {
obj.append('<div class="addcart-goods-num">0</div>');
}
obj.find('.addcart-goods-num').html(result.cart_goods_num);
$('#rtoobar_cart_count').html('').hide();
}
}
});
}
//头部删除购物车信息登录前使用goods_id,登录后使用cart_id
function drop_topcart_item(cart_id, goods_id) {
$.getJSON(HOMESITEURL + '/Cart/del',{'cart_id': cart_id, 'goods_id': goods_id}, function(result) {
if (result.state == 'true') {
$("[ds_type='cart_item_"+cart_id+"']").remove();
load_cart_information();
} else {
alert(result.msg);
}
});
}
//加载最近浏览的商品
function load_history_information(){
$.getJSON(HOMESITEURL+'/Index/viewed_info.html', function(result){
var obj = $('.header .user_menu .my-mall');
if(result['m_id'] >0){
if (typeof result['consult'] !== 'undefined') obj.find('#member_consult').html(result['consult']);
if (typeof result['consult'] !== 'undefined') obj.find('#member_voucher').html(result['voucher']);
}
var goods_id = 0;
var text_append = '';
var n = 0;
if (typeof result['viewed_goods'] !== 'undefined') {
for (goods_id in result['viewed_goods']) {
var goods = result['viewed_goods'][goods_id];
text_append += '<li class="goods-thumb"><a href="'+goods['url']+'" title="'+goods['goods_name']+
'" target="_blank"><img src="'+goods['goods_image']+'" alt="'+goods['goods_name']+'"></a>';
text_append += '</li>';
n++;
if (n > 4) break;
}
}
if (text_append == '') text_append = '<li class="no-goods">暂无商品</li>';;
obj.find('.browse-history ul').html(text_append);
});
}
/*
* 弹出窗口
*/
(function($) {
$.fn.ds_show_dialog = function(options) {
var that = $(this);
var settings = $.extend({}, {width: 480, title: '', close_callback: function() {}}, options);
var init_dialog = function(title) {
var _div = that;
that.addClass("dialog_wrapper");
that.wrapInner(function(){
return '<div class="dialog_content">';
});
that.wrapInner(function(){
return '<div class="dialog_body" style="position: relative;">';
});
that.find('.dialog_body').prepend('<h3 class="dialog_head" style="cursor: move;"><span class="dialog_title"><span class="dialog_title_icon">'+settings.title+'</span></span><span class="dialog_close_button">X</span></h3>');
that.append('<div style="clear:both;"></div>');
$(".dialog_close_button").click(function(){
settings.close_callback();
_div.hide();
});
that.draggable({handle: ".dialog_head"});
};
if(!$(this).hasClass("dialog_wrapper")) {
init_dialog(settings.title);
}
settings.left = $(window).scrollLeft() + ($(window).width() - settings.width) / 2;
settings.top = ($(window).height() - $(this).height()) / 2;
$(this).attr("style","display:none; z-index: 1100; position: fixed; width: "+settings.width+"px; left: "+settings.left+"px; top: "+settings.top+"px;");
$(this).show();
};
})(jQuery);
(function($) {
$.fn.ds_region = function(options) {
var $region = $(this);
var settings = $.extend({}, {
area_id: 0,
region_span_class: "_region_value",
src: "cache",
show_deep: 0,
btn_style_html: "",
tip_type: ""
}, options);
settings.islast = false;
settings.selected_deep = 0;
settings.last_text = "";
this.each(function() {
var $inputArea = $(this);
if ($inputArea.val() === "") {
initArea($inputArea)
} else {
var $region_span = $('<span id="_area_span" class="' + settings.region_span_class + '">' + $inputArea.val() + "</span>");
var $region_btn = $('<input type="button" class="input-btn" ' + settings.btn_style_html + ' value="编辑" />');
$inputArea.after($region_span);
$region_span.after($region_btn);
$region_btn.on("click", function() {
$region_span.remove();
$region_btn.remove();
initArea($inputArea)
});
settings.islast = true
}
this.settings = settings;
if ($inputArea.val() && /^\d+$/.test($inputArea.val())) {
$.getJSON(HOMESITEURL + "/Index/json_area_show?area_id=" + $inputArea.val() + "&callback=?", function(data) {
$("#_area_span").html(data.text == null ? "无" : data.text)
})
}
});
function initArea($inputArea) {
settings.$area = $("<select></select>");
$inputArea.before(settings.$area);
loadAreaArray(function() {
loadArea(settings.$area, settings.area_id)
})
}
function loadArea($area, area_id) {
if ($area && ds_a[area_id].length > 0) {
var areas = [];
areas = ds_a[area_id];
if (settings.tip_type && settings.last_text != "") {
$area.append("<option value=''>" + settings.last_text + "(*)</option>")
} else {
$area.append("<option value=''>-请选择-</option>")
}
for (i = 0; i < areas.length; i++) {
$area.append("<option value='" + areas[i][0] + "'>" + areas[i][1] + "</option>")
}
settings.islast = false
}
$area.on("change", function() {
var region_value = "",
area_ids = [],
selected_deep = 1;
$(this).nextAll("select").remove();
$region.parent().find("select").each(function() {
if ($(this).find("option:selected").val() != "") {
region_value += $(this).find("option:selected").text() + " ";
area_ids.push($(this).find("option:selected").val())
}
});
settings.selected_deep = area_ids.length;
settings.area_ids = area_ids.join(" ");
$region.val(region_value);
settings.area_id_1 = area_ids[0] ? area_ids[0] : "";
settings.area_id_2 = area_ids[1] ? area_ids[1] : "";
settings.area_id_3 = area_ids[2] ? area_ids[2] : "";
settings.area_id_4 = area_ids[3] ? area_ids[3] : "";
settings.last_text = $region.prevAll("select").find("option:selected").last().text();
var area_id = settings.area_id = $(this).val();
if ($('#_area_1').length > 0) $("#_area_1").val(settings.area_id_1);
if ($('#_area_2').length > 0) $("#_area_2").val(settings.area_id_2);
if ($('#_area_3').length > 0) $("#_area_3").val(settings.area_id_3);
if ($('#_area_4').length > 0) $("#_area_4").val(settings.area_id_4);
if ($('#_area').length > 0) $("#_area").val(settings.area_id);
if ($('#_areas').length > 0) $("#_areas").val(settings.area_ids);
if (settings.show_deep > 0 && $region.prevAll("select").size() == settings.show_deep) {
settings.islast = true;
if (typeof settings.last_click == 'function') {
settings.last_click(area_id);
}
return
}
if (area_id > 0) {
if (ds_a[area_id] && ds_a[area_id].length > 0) {
var $newArea = $("<select></select>");
$(this).after($newArea);
loadArea($newArea, area_id);
settings.islast = false
} else {
settings.islast = true;
if (typeof settings.last_click == 'function') {
settings.last_click(area_id);
}
}
} else {
settings.islast = false
}
if ($('#islast').length > 0) $("#islast").val("");
})
}
function loadAreaArray(callback) {
if (typeof ds_a === "undefined") {
$.getJSON(HOMESITEURL + "/Index/json_area.html?src=" + settings.src + "&callback=?", function(data) {
ds_a = data;
callback()
})
} else {
callback()
}
}
if (typeof jQuery.validator != 'undefined') {
jQuery.validator.addMethod("checklast", function(value, element) {
return $(element).fetch('islast');
}, "请将地区选择完整");
}
};
$.fn.fetch = function(k) {
var p;
this.each(function() {
if (this.settings) {
p = eval("this.settings." + k);
return false
}
});
return p
}
})(jQuery);
/* 加入购物车 */
function addcart(goods_id, quantity, callbackfunc,dir) {
console.log(dir);
var url = HOMESITEURL + '/Cart/add.html';
quantity = parseInt(quantity);
$.getJSON(url, {'goods_id': goods_id, 'quantity': quantity}, function(data) {
if (data != null) {
if (data.state) {
if (callbackfunc) {
eval(callbackfunc + "(data)");
}
// 头部加载购物车信息
load_cart_information();
$("#rtoolbar_cartlist").load(HOMESITEURL + '/Cart/ajax_load?type=html');
if(dir) {
layer.msg('添加购物车成功');
}
} else {
layer.msg(data.msg);
}
}
});
}
function setCookie(name, value, days) {
var exp = new Date();
exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
}
function getCookie(name) {
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
if (arr != null) {
return unescape(arr[2]);
return null;
}
}
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) {
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
}
(function($) {
$.fn.F_slider = function(options){
var defaults = {
page : 1,
len : 0, // 滚动篇幅
axis : 'y' // y为上下滚动x为左右滚动
}
var options = $.extend(defaults,options);
return this.each(function(){
var $this = $(this);
var len = options.len;
var page = options.page;
if(options.axis == 'y'){
var Val = $(this).find('.F-center').height();
var Param = 'top';
}else if(options.axis == 'x'){
var Val = $(this).find('.F-center').parent().width();
var Param = 'left';
}
$this.find('.F-prev').click(function(){
if( page == 1){
eval("$this.find('.F-center').animate({"+Param+":'-=' + Val*(len-1)},'slow');");
page=len;
}else{
eval("$this.find('.F-center').animate({"+Param+":'+=' + Val},'slow');");
page--;
}
});
$this.find('.F-next').click(function(){
if(page == len){
eval("$this.find('.F-center').animate({"+Param+":0},'slow');");
page=1;
}else{
eval("$this.find('.F-center').animate({"+Param+":'-=' + Val},'show');");
page++;
}
});
});
}
})(jQuery);