ArtJS(原创)

/*

方法目录;

【IE7 8 不支持trim()方法的弥补】

【 终止冒泡】

【数字千分位】

【js运算的替代方法(js3.3/1.1不等于3浮点计算有bug)】

【日期加减天数,两日期相减】

【页面如果想使用终止冒泡,则在页面调用此方法;类ArtJS_stopMaopao点击会终止冒泡;类ArtJs_removeAfterDomClick dom点击会remove或者hide】

【元素下方呈现带有三角形的div】

【table实现类似excel搜索】

【table排序】

【弥补layer.msg只能同一时间使用一个,第二个会覆盖第一个的效果】

*/

; (function (a, $) {

//【IE7 8 不支持trim()方法】

String.prototype.trim = function () {

return this.replace(/^\s\s*/, ‘‘).replace(/\s\s*$/, ‘‘);

}

var ArtJS = {};

/*

【 终止冒泡】

对于 动态元素的事件绑定(比如 live  ),stopMaopao无效果,需要在方法内使用return false;即可。

使用冒泡,则使用冒泡的元素内部的同样的事件,只能冒泡到当前元素上就会终止冒泡。所以内部元素的live不会冒泡到document起作用(直接在元素上onclick能起作用)。不过可以使用,  on(delegate) 的方式,使事件监听不冒泡到document对象而是冒泡到使用冒泡的元素身上即可。{live是把动态元素事件的监听放到document上;delegate是把动态元素事件的监听放到指定的对象上,高版本的jquery推荐使用on}

使用时候的注意点:event参数需要来自于要使用终止冒泡的方法绑定时候的参数中;

情况1-> <input type=‘button‘ value=‘按钮‘ onclick=‘btnClick(event,其他参数)‘/>

情况2-> <input type=‘button‘ value=‘按钮‘ id=‘testbtn‘/>  $(‘#testbtn‘).click(funtion(event,其他参数){})

情况3->  $(‘#testbtn‘).live(‘click‘,function(其他参数){    逻辑代码;  return false;})

return false 就可以终止冒泡。

*/

ArtJS.stopMaopao = function (event) {

var evt = event || window.event;

if (evt.stopPropagation) { //W3C阻止冒泡方法

evt.stopPropagation();

} else {

evt.cancelBubble = true; //IE阻止冒泡方法

}

}

/*

【数字千分位】

数字千位分,只负责把数字类型的数据转换成千位分的字符串。如需要小数和四舍五入等则在千位分之前进行处理。

*/

ArtJS.toThousandSplit = function (num) {

//1.先去除空格,判断是否空值和非数

num = num + "";

num = num.replace(/[^\d.]/g, "");

num = num.replace(/^\./g, ""); //第一个不能是.

num = num.replace(".", "f").replace(/\./g, "").replace("f", "."); //仅保留第一个小数点

if (num == "") {

return "";

}

//2.针对是否有小数点,分情况处理

var index = num.indexOf(".");

if (index == -1) {//无小数点

var reg = /(-?\d+)(\d{3})/;

while (reg.test(num)) {

num = num.replace(reg, "$1,$2");

}

} else {

var intPart = num.substring(0, index);

var pointPart = num.substring(index + 1, num.length);

var reg = /(-?\d+)(\d{3})/;

while (reg.test(intPart)) {

intPart = intPart.replace(reg, "$1,$2");

}

num = intPart + "." + pointPart;

}

return num;

}

ArtJS.deThousandSplit = function (numStr) {

numStr = numStr.replace(/[ ]/g, ""); //去除空格

numStr = numStr.replace(/,/gi, ‘‘);

return numStr;

}

ArtJS.autoThousandSplit = function (val) {

val = val.toString();

if (val.indexOf(",") > -1) {

return nameSpace.duyupu.deThousandSplit(val);

} else {

return nameSpace.duyupu.toThousandSplit(val);

}

}

//【js运算的替代方法(js3.3/1.1不等于3浮点计算有bug)】

ArtJS.A = function (arg1, arg2) {

var r1, r2, m;

try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }

try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }

m = Math.pow(10, Math.max(r1, r2))

return (T(arg1, m) + T(arg2, m)) / m

}

//减

ArtJS.M = function (arg1, arg2) {

var r1, r2, m, n;

try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }

try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }

m = Math.pow(10, Math.max(r1, r2));

//动态控制精度长度

n = (r1 >= r2) ? r1 : r2;

return ((T(arg1, m) - T(arg2, m)) / m).toFixed(n);

}

//乘

ArtJS.T = function (arg1, arg2) {

var m = 0, s1 = arg1.toString(), s2 = arg2.toString();

try { m += s1.split(".")[1].length } catch (e) { }

try { m += s2.split(".")[1].length } catch (e) { }

return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)

}

//除

ArtJS.D = function (arg1, arg2) {

var t1 = 0, t2 = 0, r1, r2;

try { t1 = arg1.toString().split(".")[1].length } catch (e) { }

try { t2 = arg2.toString().split(".")[1].length } catch (e) { }

with (Math) {

r1 = Number(arg1.toString().replace(".", ""))

r2 = Number(arg2.toString().replace(".", ""))

return (r1 / r2) * pow(10, t2 - t1);

}

}

//【日期加减天数,两日期相减】

//日期加天数

ArtJS.dateAddDays = function (primaryDay, addDays) {

var primaryDay = primaryDay.split("-");

if (primaryDay[1].indexOf("0") == 0) {

primaryDay[1] = parseInt(primaryDay[1].replace("0", ""));

}

primaryDay[1] = primaryDay[1] - 1;

var nDate = new Date(primaryDay[0], primaryDay[1], primaryDay[2]); // new Date(年,月,日)  出来的日期,月份加1

var millSeconds = Math.abs(nDate) + (addDays * 24 * 60 * 60 * 1000);

var rDate = new Date(millSeconds);

var year = rDate.getFullYear();

var month = rDate.getMonth() + 1;

if (month < 10) month = "0" + month;

var date = rDate.getDate();

if (date < 10) date = "0" + date;

return (year + "-" + month + "-" + date);

}

//日期减天数

ArtJS.dateRemoveDays = function (primaryDay, addDays) {

var primaryDay = primaryDay.split("-");

if (primaryDay[1].indexOf("0") == 0) {

primaryDay[1] = parseInt(primaryDay[1].replace("0", ""));

}

primaryDay[1] = primaryDay[1] - 1;

var nDate = new Date(primaryDay[0], primaryDay[1], primaryDay[2]);

var millSeconds = Math.abs(nDate) - (addDays * 24 * 60 * 60 * 1000);

var rDate = new Date(millSeconds);

var year = rDate.getFullYear();

var month = rDate.getMonth() + 1;

if (month < 10) month = "0" + month;

var date = rDate.getDate();

if (date < 10) date = "0" + date;

return (year + "-" + month + "-" + date);

}

//两日期相减

ArtJS.twoDateMinus = function (date1, date2) {

var d1 = date1.split("-");

if (d1[1].indexOf("0") == 0) {

d1[1] = parseInt(d1[1].replace("0", ""));

}

d1[1] = d1[1] - 1;

var rd1 = new Date(d1[0], d1[1], d1[2]);

var d2 = date2.split("-");

if (d2[1].indexOf("0") == 0) {

d2[1] = parseInt(d2[1].replace("0", "") - 1);

}

d2[1] = d2[1] - 1;

var rd2 = new Date(d2[0], d2[1], d2[2]);

var millSeconds = Math.abs(Math.abs(rd1) - Math.abs(rd2));

return Math.abs(millSeconds / (24 * 60 * 60 * 1000));

}

/*

Example:

var now = new Date();

var y = now.getFullYear();//获取时间中的年份

var m = now.getMonth()+1;//获取时间中的月份  月份 0-11 所以,需要加1

var d = now.getDate();//获取时间中的几号

//转换成可以用来加减,处理的格式  年-月-日

var formatNow = y + "-" + m + "-" + d;

var result = ArtJS.dateAddDays(formatNow, 11);

alert(result);

ArtJS.twoDateMinus(‘2016-09-30‘,‘2016-10-1‘)

*/

//【页面如果想使用终止冒泡,则在页面调用此方法;ArtJS_stopMaopao点击会终止冒泡;ArtJs_removeAfterDomClick dom点击会remove】添加类 ArtJS_stopMaopao 就会终止冒泡到 document

ArtJS.setStopMaopaoAfterDomClickRemove = function () {

setStopMaopaoAfterDomClick("ArtJS_stopMaopao", "ArtJs_removeAfterDomClick", "remove");

}

//内部方法,

function setStopMaopaoAfterDomClick(stopMaopaoClass, documentClickHideClass, removeOrHide) {

if ($.fn.on == null) {

$("." + stopMaopaoClass).live(‘click‘, function (event) {

ArtJS.stopMaopao(event);

});

}

else {

$(document).on(‘click‘, "." + stopMaopaoClass, function (event) {

ArtJS.stopMaopao(event);

});

}

$(document).click(function () {

if (documentClickHideClass != null) {

var dom = $("." + documentClickHideClass);

if (dom.length > 0) {

if (removeOrHide == "remove") {

dom.remove();

}

else {

dom.hide();

}

}

}

});

}

ArtJS.setStopMaopaoAfterDomClickHide = function () {

setStopMaopaoAfterDomClick("ArtJS_stopMaopao", "ArtJs_removeAfterDomClick", ‘hide‘);

}

//【下方呈现带有三角形的div】

ArtJS.showWithTriDiv = function (single, cont) {

var those = $(single);

if ($("#triangleDiv_add").length > 0) {

$("#triangleDiv_add").remove();

}

var left = $(single).offset().left;

var top = $(single).offset().top + $(single).outerHeight() + 10;

$("body").append("<div id=‘triangleDiv_add‘ class=‘ArtJS_stopMaopao ArtJs_removeAfterDomClick‘ style=‘ position: absolute;border-radius: 4px;border: 1px solid #545050;box-shadow: 1px 1px 5px #d1d1d1; -webkit-box-shadow: 1px 1px 5px gray;left:" + left + "px;top:" + top + "px;‘><em style=‘position: absolute; left: 10px;margin-top: -11px;width: 0; height: 0; border-right: 10px solid transparent; border-left: 10px solid transparent;border-bottom: 10px solid #1e242b; z-index: 5;‘></em><i style=‘position: absolute;left: 10px; margin-top: -10px;width: 0; height: 0;border-right: 10px solid transparent; border-left: 10px solid transparent;border-bottom: 10px solid white;z-index: 5;‘></i><div style=‘ padding: 20px;overflow: auto;  max-height: 300px; word-wrap: break-word; word-break: break-all;white-space: normal;‘>" + cont + "</div></div>");

}

//【弥补layer.msg只能同一时间使用一个,第二个会覆盖第一个的效果】

ArtJS.msg=function (cont,time,cssParam) {

$("#addedMsg").remove();

$(‘body‘).append("<div id=‘addedMsg‘ style=‘display:table;‘>" + cont + "</div>");

var defaultParam = { "z-index": 5000, "color": "white", "background-color": "#AD8585", "padding": "10px", "position": "fixed", "left": "50%", "top": "50%" };

var css = $.extend({}, defaultParam, cssParam);

var $msg = $("#addedMsg");

if (cssParam != null && cssParam.right != null) {

}

else {

css["margin-top"] = (0 - $msg.width() / 2) + "px";

}

if (cssParam != null && cssParam.right != null) {

}

else {

css["margin-left"] = (0 - $msg.width() / 2) + "px";

}

setTimeout(function () {

$("#addedMsg").remove();

}, time);

$msg.css(css);

}

a.ArtJS = ArtJS;

//===============================

// 【excel搜索】 依赖  json2.js   jquery.js    my97datepickeer

$.fn.useExcelFilter = function (submitOrAjaxSearch, cssObj) {

var those = this;

var defaultMainCss = { "width": "220px", "height": "350px", "position": "absolute", "z-index": "888", "border": "1px solid gray", "background-color": "white", "border-radius": "4px", "display": "none" };

$(".useExcelFilter_Main_div").remove(); //如果有先删除

var realMainCss = {}; $.extend(realMainCss, defaultMainCss, cssObj);

$("body").append("<div class=‘useExcelFilter_Main_div‘><div class=‘useExcelFilter_Main_div_cont‘ style=‘margin-left:20px; margin-right:20px;‘></div><div class=‘useExcelFilter_Main_div_bottom‘ style=‘position:absolute;bottom:15px;margin:0px auto;width:100%;text-align:center‘><span style=‘color:white;padding-top:3px;padding-bottom:3px;padding-left:5px;padding-right:5px;border-radius:4px;cursor:pointer;color: #fff; background-color: #337ab7;border-color: #2e6da4;‘  id=‘excel_sure‘>确定</span>&nbsp; &nbsp; <span style=‘background-color:red;color:white;padding-top:3px;padding-bottom:3px;padding-left:5px;padding-right:5px;border-radius:4px;cursor:pointer;    color: #333; background-color:#E0C3C3; border-color: #ccc;‘ id=‘excel_sure_not‘ >取消</span></div></div>");

$(‘body‘).append("<style>.excel_li:hover,.useExcelFilter_Main_div_sortul li:hover{cursor:pointer;} .useExcelFilter_Main_div_ul{color:black;}.Excel_unsearched{display:none;} .useExcelFilter_Main_div_ul li{word-break: keep-all;white-space:nowrap;}</style>");

$(".useExcelFilter_Main_div").css(realMainCss);

$(".useExcelFilter_Main_div").click(function (event) {

var evt = event || window.event;

if (evt.stopPropagation) { //W3C阻止冒泡方法

evt.stopPropagation();

} else {

evt.cancelBubble = true; //IE阻止冒泡方法

}

});

$(this).click(function (event) {

var that = this;

if ($(that).hasClass("excelclicked")) {

$(".useExcelFilter_Main_div").hide();

return;

}

$(those).removeClass("excelclicked");

$(that).addClass("excelclicked");

var jsonDataMark = $(that).attr("jsonDataMark");

var jsonDataType = $(that).attr("jsonDataType");

var excelJsonStr = $("#excelJsonStr").val();

var excelJson = $.parseJSON(excelJsonStr);

var thisObjJson = null;

if (excelJson != null) {

thisObjJson = excelJson[jsonDataMark];

}

//            var uls = "<ul class=‘useExcelFilter_Main_div_sortul‘ style=‘border-bottom:1px solid gray;‘><li>升序&nbsp;↑</li><li>降序&nbsp;↓</li></ul>";

var uls = "";

//字符串

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "1") {

uls = uls + "<input type=‘text‘  style=‘box-shadow:none; height:30px;margin-top:20px; padding:5px 2px;width:100%;‘ placeholder=‘搜索‘  id=‘excel_search_text‘/><div style=‘overflow-y:auto;height:" + (parseFloat(realMainCss.height.replace(‘px‘, ‘‘)) - 110) + "px;margin-top:10px;‘><ul class=‘useExcelFilter_Main_div_ul‘><li onclick=‘$(this).find(\":checkbox\").click()‘ class=‘excel_li fisrtli‘><input type=‘checkbox‘ class=‘excel_cb_all excel_cb‘/>&nbsp;<span>全选</span></li>";

$.each(thisObjJson, function (a, b) {

if (b.isChecked) {

uls = uls + "<li  class=‘excel_li‘  onclick=‘$(this).find(\":checkbox\").click()‘><input type=‘checkbox‘ class=‘excel_cb‘ value=‘" + b.dbVal + "‘  checked=‘checked‘/>&nbsp;&nbsp;<span>" + b.showVal + "</span></li>";

}

else {

uls = uls + "<li  class=‘excel_li‘  onclick=‘$(this).find(\":checkbox\").click()‘><input type=‘checkbox‘ class=‘excel_cb‘ value=‘" + b.dbVal + "‘ />&nbsp;&nbsp;<span>" + b.showVal + "</span></li>";

}

});

uls = uls + "</ul></div>";

}

//金钱类型

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "2") {

uls = uls + "<div style=‘margin-top:20px;color:black;‘ class=‘execle_money_div‘>金额范围&nbsp;<span style=‘color:white;padding-left:5px;padding-right:5px;border-radius:4px;cursor:pointer;    color: #333; background-color:#E0C3C3; border-color: #ccc;‘ id=‘excel_typeclear‘>清空</span><br/><input type=‘text‘ style=‘width:100%;height:30px;box-shadow:none;‘ placeholder=‘¥‘ class=‘inputmoney‘ value=‘" + thisObjJson[0].moneyMin + "‘/> <br/> ↓<input type=‘text‘ style=‘width:100%;height:30px;box-shadow:none;‘  placeholder=‘¥‘ class=‘inputmoney‘ value=‘" + thisObjJson[0].moneyMax + "‘/></div>";

}

//时间类型

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "3") {

uls = uls + "<div style=‘margin-top:20px;color:black;‘ class=‘execle_date_div‘>日期范围&nbsp;<span style=‘color:white;padding-left:5px;padding-right:5px;border-radius:4px;cursor:pointer;    color: #333; background-color:#E0C3C3; border-color: #ccc;‘ id=‘excel_typeclear‘>清空</span><br/><input type=‘text‘ style=‘width:100%;height:30px;box-shadow:none;‘ class=‘Wdate‘onFocus=‘WdatePicker()‘  value=‘" + thisObjJson[0].timeMin + "‘/> <br/> ↓<input type=‘text‘ style=‘width:100%;height:30px;box-shadow:none;‘ class=‘Wdate‘ onFocus=‘WdatePicker()‘   value=‘" + thisObjJson[0].timeMax + "‘ /></div>";

}

//添加前移除已经存在的

$(".useExcelFilter_Main_div_cont").find("div,input,ul").remove().end().append(uls);

//字符串

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "1") {

if ($(".excel_cb:not(‘.excel_cb_all‘)").length == $(".excel_cb:not(‘.excel_cb_all‘):checked").length) {

$(".excel_cb_all").attr("checked", "checked");

}

else {

$(".excel_cb_all").removeAttr("checked");

}

//全选按钮

$(".excel_cb").click(function (event) {

if ($(this).hasClass("excel_cb_all")) {

if ($(this).is(":checked")) {

$(".excel_cb").attr("checked", "checked");

}

else {

$(".excel_cb").removeAttr("checked");

}

}

var evt = event || window.event;

if (evt.stopPropagation) { //W3C阻止冒泡方法

evt.stopPropagation();

} else {

evt.cancelBubble = true; //IE阻止冒泡方法

}

});

//搜索框keyup

$("#excel_search_text").keyup(function () {

var xcont = $(this).val();

if (xcont == "") {

$(".useExcelFilter_Main_div_ul li").removeClass("Excel_unsearched");

return;

}

var lis = $(".excel_li").not(".fisrtli");

$.each(lis, function (c, d) {

if ($(d).find("span").text().indexOf(xcont) >= 0) {

$(d).removeClass("Excel_unsearched");

}

else {

$(d).addClass("Excel_unsearched");

}

});

});

}

//金钱类型

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "2") {

$(".inputmoney").keyup(function () {

var num = $(this).val();

//1.先去除空格,判断是否空值和非数

num = num + "";

num = num.replace(/[^\d.]/g, ""); //非数字和.的替换掉

num = num.replace(/^\./g, ""); //第一个不能是.

num = num.replace(".", "f").replace(/\./g, "").replace("f", "."); //仅保留第一个小数点

if (num == "") {

return;

}

//2.针对是否有小数点,分情况处理

var index = num.indexOf(".");

if (index == -1) {//无小数点

var reg = /(-?\d+)(\d{3})/;

while (reg.test(num)) {

num = num.replace(reg, "$1,$2");

}

} else {

var intPart = num.substring(0, index);

var pointPart = num.substring(index + 1, num.length);

var reg = /(-?\d+)(\d{3})/;

while (reg.test(intPart)) {

intPart = intPart.replace(reg, "$1,$2");

}

num = intPart + "." + pointPart;

}

$(this).val(num);

});

$(".inputmoney").focusout(function () {

var num = $(this).val();

//1.先去除空格,判断是否空值和非数

num = num + "";

num = num.replace(/[^\d.]/g, ""); //非数字和.的替换掉

num = num.replace(/^\./g, ""); //第一个不能是.

num = num.replace(".", "f").replace(/\./g, "").replace("f", "."); //仅保留第一个小数点

if (num == "") {

return;

}

//2.针对是否有小数点,分情况处理

var index = num.indexOf(".");

if (index == -1) {//无小数点

var reg = /(-?\d+)(\d{3})/;

while (reg.test(num)) {

num = num.replace(reg, "$1,$2");

}

} else {

var intPart = num.substring(0, index);

var pointPart = num.substring(index + 1, num.length);

var reg = /(-?\d+)(\d{3})/;

while (reg.test(intPart)) {

intPart = intPart.replace(reg, "$1,$2");

}

num = intPart + "." + pointPart;

}

$(this).val(num);

});

$("#excel_typeclear").click(function () {

$(".useExcelFilter_Main_div").find(":text").val("");

});

}

//时间类型

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "3") {

$("#excel_typeclear").click(function () {

$(".useExcelFilter_Main_div").find(":text").val("");

});

}

$(".useExcelFilter_Main_div").css({ "left": $(that).offset().left, "top": ($(that).offset().top + $(that).outerHeight()) });

$(".useExcelFilter_Main_div").show();

$("#excel_sure_not").unbind(‘click‘).click(function () {

$(document).click();

});

//

$("#excel_sure").unbind(‘click‘).click(function () {

//字符串

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "1") {

var checkedCBs = $(".excel_cb:not(‘.excel_cb_all‘):visible:checked");

var str = ‘,‘;

$.each(checkedCBs, function (m, n) {

str = str + $(n).val() + ",";

});

$.each(thisObjJson, function (h, m) {

if (str.indexOf("," + m.dbVal + ",") >= 0) {

m.isChecked = true;

}

else {

m.isChecked = false;

}

});

$("#excelJsonStr").val(JSON.stringify(excelJson));

submitOrAjaxSearch();

}

//金钱

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "2") {

var inputMoney = $(".execle_money_div").find(".inputmoney");

thisObjJson[0].moneyMin = $(inputMoney[0]).val();

thisObjJson[0].moneyMax = $(inputMoney[1]).val();

debugger;

$("#excelJsonStr").val(JSON.stringify(excelJson));

submitOrAjaxSearch();

}

//时间

if (thisObjJson != null && thisObjJson.length > 0 && jsonDataType == "3") {

var inputDate = $(".execle_date_div").find(":text");

thisObjJson[0].timeMin = $(inputDate[0]).val();

thisObjJson[0].timeMax = $(inputDate[1]).val();

$("#excelJsonStr").val(JSON.stringify(excelJson));

submitOrAjaxSearch();

}

$(document).click();

});

//终止冒泡

var evt = event || window.event;

if (evt.stopPropagation) { //W3C阻止冒泡方法

evt.stopPropagation();

} else {

evt.cancelBubble = true; //IE阻止冒泡方法

}

});

$(document).click(function (event) {

$(".useExcelFilter_Main_div").hide();

$(those).removeClass("excelclicked");

});

}

/*

html

<input type="hidden" name="excelJsonStr" value=‘<%=excelJsonStr %>‘  id=‘excelJsonStr‘ />

<td>

<div align="center" style=‘width: 80px;‘ >

销售人员

&nbsp;<img src="../images/excel.png" paixu="order_type" style=" cursor:pointer" class=‘useWidthSort‘ jsonDataMark =‘xiaoShou‘ jsonDataType="1"/>

</div>

</td>

<td>

<div align="center" style=‘width: 150px;‘ >

发票申请人

&nbsp;<img src="../images/excel.png" paixu="order_type" style=" cursor:pointer" class=‘useWidthSort‘ jsonDataMark =‘shenQingRen‘ jsonDataType="1"/>

</div>

</td>

<td >

<div align="center" style=‘width: 120px;‘ >

申请日期

&nbsp;<img src="../images/excel.png" paixu="order_type" style=" cursor:pointer" class=‘useWidthSort‘ jsonDataMark =‘shenDate‘ jsonDataType="3"/>

</div>

</td>

<td>

<div align="center" style=‘width: 110px;‘  >

认款金额&nbsp;<img src="../images/excel.png" paixu="order_type" style=" cursor:pointer" class=‘useWidthSort‘ jsonDataMark =‘renKuanMoney‘ jsonDataType="2"/></div>

</td>

后台

//后台接受从前台传递过来的excle数据值

string excelJsonStr = Request["excelJsonStr"];

System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();

jsonModel4 jm = null;

if (!string.IsNullOrEmpty(excelJsonStr))

{

jm = js.Deserialize<jsonModel4>(excelJsonStr);

//销售

var xiaoShous = jm.xiaoShou.Where(t => t.isChecked == true);

//申请人

var shenWingRens = jm.shenQingRen.Where(t => t.isChecked == true);

//认款金额

List<basicExcelModel4> renMoney = jm.renKuanMoney.Where(t => t.moneyMin != "" || t.moneyMax != "").ToList();

//申请日期

List<basicExcelModel4> shenDate = jm.shenDate.Where(t => t.timeMin != "" || t.timeMax != "").ToList();

StringBuilder sbb = new StringBuilder();

#region 销售

foreach (var item in xiaoShous)

{

sbb.Append(item.dbVal + ",");

}

if (sbb.ToString() != "")

{

sb.Append(" and fpxsid in (" + sbb.ToString().Trim(‘,‘) + ")");

}

else//什么也没选 空

{

sb.Append(" and fpxsid in (-1)");

}

#endregion

sbb = new StringBuilder();

#region 申请人

foreach (var item in shenWingRens)

{

sbb.Append(item.dbVal + ",");

}

if (sbb.ToString() != "")

{

sb.Append(" and fpxzid in (" + sbb.ToString().Trim(‘,‘) + ")");

}

else//什么也没选 空

{

sb.Append(" and fpxzid in (-1)");

}

#endregion

sbb = new StringBuilder();

#region 认款金额

if (renMoney.Count>0)

{

string moneyMin = renMoney[0].moneyMin;

string moneyMax = renMoney[0].moneyMax;

if (moneyMin != "")

{

sb.Append(" and fapUsedMoney >=" + moneyMin.Replace(",", ""));

}

if (moneyMax != "")

{

sb.Append(" and fapUsedMoney <=" + moneyMin.Replace(",", ""));

}

}

#endregion

sbb = new StringBuilder();

#region 申请日期

if (shenDate.Count>0)

{

string dateMin = shenDate[0].timeMin;

string dateMax = shenDate[0].timeMax;

if (dateMin!="")

{

sb.Append(" and fpcreateddate >= ‘" + dateMin+"‘");

}

if (dateMax != "")

{

sb.Append(" and fpcreateddate <= ‘" + dateMax + "‘");

}

}

#endregion

}

else

{

MakeJsonStr();

}

void MakeJsonStr()

{

//要被序列化的对象

jsonModel4 jm = new jsonModel4();

//excel 销售

List<basicExcelModel4> xiaosohu = new List<basicExcelModel4>();

//excel 申请人

List<basicExcelModel4> xz = new List<basicExcelModel4>();

//获取excle数据源

DataSet ds = FapiaoManageRule.GetExcel();

if (ds != null && ds.Tables.Count > 0)

{

var rows = ds.Tables[0].Rows;

foreach (DataRow item in rows)

{

xiaosohu.Add(new basicExcelModel4()

{

dbVal = item["fpxsid"].ToString(),

isChecked = true,

showVal = item["xsname"].ToString()

});

}

var rows2 = ds.Tables[1].Rows;

foreach (DataRow item in rows2)

{

xz.Add(new basicExcelModel4() { dbVal = item["fpxzid"].ToString(), isChecked = true, showVal = item["xzname"].ToString() });

}

}

jm = new jsonModel4();

jm.xiaoShou = xiaosohu;

jm.shenQingRen = xz;

jm.renKuanMoney = new List<basicExcelModel4>() { new basicExcelModel4() { } };

jm.shenDate = new List<basicExcelModel4>() { new basicExcelModel4() { } };

System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();

excelJsonStr = js.Serialize(jm);

}

class jsonModel4

{

public List<basicExcelModel4> xiaoShou { get; set; }

public List<basicExcelModel4> shenQingRen { get; set; }

public List<basicExcelModel4> renKuanMoney { set; get; }

public List<basicExcelModel4> shenDate { set; get; }

}

class basicExcelModel4

{

//1 字符串

public string dbVal = "";

public string showVal = "";

public bool isChecked = false;

//2 金钱

public string moneyMin = "";

public string moneyMax = "";

// 3 时间

public string timeMin = "";

public string timeMax = "";

}

*/

//【排序】

//【排序】

$.fn.useSort = function (afterDeal) {

var those = this;

//点击排序

$(this).click(function () {

var that = this;

var sort = $(that).attr("sort"); //排序标记

var sortStr = "";

debugger;

//如果是 升序排序

if (sort.indexOf("asc") >= 0) {

sortStr = sort.replace("asc", "desc");

$(that).attr("sort", sortStr);

}

//倒叙,或者 还没有排序

else {

sortStr = sort.replace("desc", "") + " asc ";

$(that).attr("sort", sortStr);

}

var focusedSorts = $(".focusedSort").not(that);

if (focusedSorts.length > 0) {

$.each(focusedSorts, function (x, y) {

$(y).attr("sort", $(y).attr("sort").replace("desc", "").replace("asc", ""));

});

}

focusedSorts.removeClass("focusedSort");

$(that).addClass("focusedSort");

$("#hiddenSortStr").val(sortStr);

afterDeal(that);

});

}

/*

<input type="hidden" name="hiddenSortStr" value=""  id=‘hiddenSortStr‘/>

$(".sortIcon").useSort(afterDealsort);

function afterDealsort(a) {

var sort = $(a).attr("sort");

$.each($(".sortIcon"), function () {

$(this).attr("src", "../images/details_open.png");

});

if (sort.indexOf("asc")>=0) {

$(a).attr("src", "../images/details_close.png");

}

else {

$(a).attr("src", "../images/details_open.png");

}

ajaxGetData();

}

后台

private string GetSort()

{

string sort = " order by a.statu asc, sort asc, a.autoid desc";

string hiddenSortStr = Request["hiddenSortStr"];

if (!string.IsNullOrEmpty(hiddenSortStr))

{

string sortField = hiddenSortStr.Replace("asc", "").Replace("desc", "").Trim();

string sortType = hiddenSortStr.IndexOf("asc")>=0 ?"asc":"desc";

switch (sortField)

{

case "zhuangtai":

if (sortType == "desc")

{

sort = " order by t.astatu desc, sort asc, aid desc";

}

else

{

sort = " order by t.astatu asc, sort asc, aid desc";

}

break;

case "liushui":

sort = " order by a.waternumber " + sortType;

break;

case "daoqi":

sort = " order by b.endDate " + sortType;

break;

case "kaishouju":

sort = " order by a.ksjdate " + sortType;

break;

case "shouju":

sort = " order by a.sydsjh " + sortType;

break;

}

}

return sort;

}

*/

})(window, jQuery);

/*

把window作为参数传入,据说好处 1 提高性能; 2 可以把window定义成a; 压缩js文件减少代码;

*/

时间: 2024-10-24 22:13:24

ArtJS(原创)的相关文章

ArtJS (原创)使用文档

/*方法目录:[IE7 8 不支持trim()方法的弥补][ 终止冒泡][数字千分位][js运算的替代方法(js3.3/1.1不等于3浮点计算有bug)][日期加减天数,两日期相减][元素下方呈现带有三角形的div] [ArtJS.msg] [table实现类似excel搜索][table排序][弥补layer.msg只能同一时间使用一个,第二个会覆盖第一个的效果]*/ [IE7 8 不支持trim()方法的弥补] var test = "abc ";test.trim(); [ 终止

原创 导出微信收藏到电脑

1.安装模拟器(如:天天模拟器)2.模拟器安装打开微信3.模拟器安装es文件浏览器4.打开微信文件路径:在sdcard的Tencent的MicroMsg的ebb34e976d3351bfe0ab(就是那个最长的,后面就不打出来了)5.模拟器设置共享位置(如:/mnt/asec/share --> 桌面/自定义文件夹)6.用es文件浏览器复制微信收藏文件夹到共享目录(/sdcard/tencent/MicroMsg/********/favorite --> /mnt/asec/share)7.

[原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记12:一个简单的serlet连接数据库实验

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[转载+原创]Emgu CV on C# (四) —— Emgu CV on 二值化

重点介绍了二值化原理及数学实现,并利用emgucv方法编程实现. 一.理论概述(转载,如果懂图像处理,可以略过,仅用作科普,或者写文章凑字数)  1.概述 图像二值化是图像处理中的一项基本技术,也是很多图像处理技术的预处理过程. 图像的预处理在进行图像二值化操作前要对图像进行预处理,包括彩色图像灰化和增强.由于选取阈值需要参照直方图,因此在图像进行处理后,我们再获取图像的直方图以帮助选取阈值.整个流程如下所示: 读取图像→灰度图像→图像增强→图像直方图→二值化处理 2.数学原理(转载,基本可以不

【原创】android——SQLite实现简单的注册登陆(已经美化)

1,Main_activity的xmL配置 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_pa

非微信图文网页,微信浏览器点击图片弹出自带图片浏览 (原创请勿转载)

微信图文网页点击插入的图片,会在微信的图片浏览器上浏览图片可以放大缩小,但是自己做的网页没有这个功能,下面我就来介绍一下这个功能,做出一个完美一点的demo.如果不想看过程直接到最后看demo... 教程需要:脚本编辑器(记事本或者是notepad++.DW都可以).jquery.js.微信浏览器作为测试 如下图效果 我们用到的是微信内置JsAPI的一个,这个函数在微信的开发者平台文档里我没有找到,是在网上搜到的. WeixinJSBridge.invoke('imagePreview',{  

【原创】连“霍金”都想学习的“人工智能”---【自己动手写神经网络】小白入门连载开始了(1)

欢迎关注[自己动手写神经网络]的博客连载!!! 第1章 神经网络简介 神经网络这个词,相信大家都不陌生.就在你打开本书,并试图了解神经网络时,你已经在使用一个世界上最复杂的神经网络——你的大脑,一个由大约1000亿个神经元(每个单元拥有约1万个连接)构成的复杂系统.但人的大脑太过复杂,以至于科学家们到目前为止仍然无法准确解释大脑的工作原理和方式.但有幸的是,生物神经网络的最最基本的元素已经能够被识别,而这就构成了本书想为你介绍的人工神经网络(Artificial Neural Network).

【原创】用第三方语言编写PostgreSQL 存储函数

在PostgreSQL里,所有的存储函数需求都可以用PLPGSQL来实现.同时也支持用第三方语言来编写,这个就得看自己哪个方面熟练了.不过要注意的一点是 PLPGSQL的效率怎么着都比其他第三方语言来的高效.比如,简单的插入表的存储函数: CREATE OR REPLACE FUNCTION ytt.insert_plpgsql(f_num integer) RETURNS void LANGUAGE plpgsql AS $ytt$ declare i int := 0; v_rank int