fourcal/src/main/resources/static/assets/js/project_common.js

205 lines
5.5 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.

/**
* 使用layui的alert效果更好
* @param msg
*/
var layuiAlert = function(msg) {
layui.use('layer', function(){
var layer = layui.layer;
layer.alert(msg);
});
};
/**
* parse float保留两位小数四舍五入
* 空格或者非数字认为是0
* @param x
* @returns {*}
*/
function f2(x) {
if(!x){
return 0;
}
if(typeof x === 'string'){
//这一步因为数字格式化为了包含分隔符,获取的时候就去掉这个分隔符
x = x.replaceAll(",","");
}
var f = parseFloat(x);
if (isNaN(f)) {
return 0;
}
return Math.round(f*100)/100;
}
/**
* 给定一个数字,保留两位小数输出,格式化为包含分隔符
* @param f
* @returns {string}
*/
function f2Fixed(f) {
//return Number(f).toFixed(2);
//格式化413,423,423.24
f = Number(f).toLocaleString('en-US',{minimumFractionDigits: 2, maximumFractionDigits: 2, useGrouping: true});
return f;
}
function digitalSelf(name, action) {
var self = inputVal(name);
var $action = $(action);
$action.val(f2Fixed(f2(self)));
}
/**
* 计算利润率
* @param r1
* @param r2
* @returns {*}
*/
function rate(r1,r2) {
if(!r1 || !r2 || r1==0 || r2==0){
return 0;
}
return f2(r1*100/r2);
}
/**
* 保留数字两位小数
*/
function bindNumberInput() {
//所有的数字类型输入框
// var $numberTypeInputs = $("input[type='number']");
// inputKeepDigital($numberTypeInputs);
//所有的number类的输入框
var $numberClassInputs = $("input.number");
inputKeepDigital($numberClassInputs);
}
function inputKeepDigital($inputs) {
//键盘键弹起的时候,会在每次输入一位数的时候就格式化,先行去除
// $inputs.keyup(function () {
// keepDigital($(this));
// });
//失去焦点时再校验一遍
$inputs.blur(function() {
keepDigital($(this));
});
}
function keepDigital($input) {
$input.val(keepDigitalVal($input.val()));
}
/**
* 只保留数字
*/
function keepDigitalVal(value) {
value = value.replace(/[^\-\d.]/g, ""); //清除“-”、“数字”和“.”以外的字符
value = value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
value = value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
value = value.replace(/^(\-)?(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
if (value.indexOf(".") < 0 && value != "") {
//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
value = parseFloat(value);
}
return f2Fixed(f2(value));
}
/**
* 保留整数
*/
function integerNumber(input) {
input.value=input.value.replace(/[^\d]/g,'').replace(/^0{1,}/g,'');
}
function postAjax(url, data, callback) {
$.ajax({
url: url,
data: JSON.stringify(data),
type: "post",
dataType: "json",
contentType:"application/json",
async: false,
success: function (d) {
console.log(d);
if(callback) {
callback(data, d);
}
}
});
}
function getAjax(url, params, callback) {
$.ajax({
url: url,
data: params,
type: "get",
dataType: "json",
/*contentType:"application/json",*/
async: false,
success: function (d) {
console.log(d);
if(callback) {
callback(params, d);
}
}
});
}
/**
* 获取给定名字的input框的值
* @param name
* @returns {*|jQuery}
*/
function inputVal(name) {
return $("input[name='"+name+"']").val();
}
/**
* 获取给定class名字的input框的值
* @param className
* @returns {*|jQuery}
*/
function classVal(className) {
return $("."+className).val();
}
/**
* 统计成本(含税),有一项没填就置空
*/
function calCostInclude() {
var costPurchaseDeviceTaxInclude = inputVal("costPurchaseDeviceTaxInclude");
var costPurchaseBuildTaxInclude = inputVal("costPurchaseBuildTaxInclude");
var costPurchaseServiceTaxInclude = inputVal("costPurchaseServiceTaxInclude");
var costPurchaseOtherTaxInclude = inputVal("costPurchaseOtherTaxInclude");
var costProjectManageTaxInclude = inputVal("costProjectManageTaxInclude");
var costOtherOtherTaxInclude = inputVal("costOtherOtherTaxInclude");
var $costTotalTaxInclude = $("input[name='costTotalTaxInclude']");
$costTotalTaxInclude.val(f2Fixed(f2(costPurchaseDeviceTaxInclude) +f2(costPurchaseBuildTaxInclude)
+f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude)
+f2(costProjectManageTaxInclude)+f2(costOtherOtherTaxInclude)));
}
/**
* 统计成本(不含税),有一项没填就置空
*/
function calCostExclude() {
var costPurchaseDeviceTaxExclude = inputVal("costPurchaseDeviceTaxExclude");
var costPurchaseBuildTaxExclude = inputVal("costPurchaseBuildTaxExclude");
var costPurchaseServiceTaxExclude = inputVal("costPurchaseServiceTaxExclude");
var costPurchaseOtherTaxExclude = inputVal("costPurchaseOtherTaxExclude");
var costProjectManageTaxExclude = inputVal("costProjectManageTaxExclude");
var costOtherOtherTaxExclude = inputVal("costOtherOtherTaxExclude");
var $costTotalTaxExclude = $("input[name='costTotalTaxExclude']");
$costTotalTaxExclude.val(f2Fixed(f2(costPurchaseDeviceTaxExclude)+f2(costPurchaseBuildTaxExclude)
+f2(costPurchaseServiceTaxExclude)+f2(costPurchaseOtherTaxExclude)
+f2(costProjectManageTaxExclude)+f2(costOtherOtherTaxExclude)));
}