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

205 lines
5.5 KiB
JavaScript
Raw Normal View History

2021-12-09 12:09:45 +00:00
/**
* 使用layui的alert效果更好
* @param msg
*/
var layuiAlert = function(msg) {
layui.use('layer', function(){
var layer = layui.layer;
layer.alert(msg);
});
};
2021-11-05 09:01:26 +00:00
/**
* parse float保留两位小数四舍五入
* 空格或者非数字认为是0
2021-11-05 09:01:26 +00:00
* @param x
* @returns {*}
*/
function f2(x) {
if(!x){
return 0;
2021-11-05 09:01:26 +00:00
}
2022-01-05 14:07:33 +00:00
if(typeof x === 'string'){
//这一步因为数字格式化为了包含分隔符,获取的时候就去掉这个分隔符
x = x.replaceAll(",","");
}
2021-11-05 09:01:26 +00:00
var f = parseFloat(x);
if (isNaN(f)) {
return 0;
2021-11-05 09:01:26 +00:00
}
2021-12-27 03:14:31 +00:00
return Math.round(f*100)/100;
2021-11-05 09:01:26 +00:00
}
2021-12-27 01:37:46 +00:00
/**
2022-01-05 14:07:33 +00:00
* 给定一个数字保留两位小数输出格式化为包含分隔符
2021-12-27 01:37:46 +00:00
* @param f
* @returns {string}
*/
function f2Fixed(f) {
2022-01-05 14:07:33 +00:00
//return Number(f).toFixed(2);
//格式化413,423,423.24
f = Number(f).toLocaleString('en-US',{minimumFractionDigits: 2, maximumFractionDigits: 2, useGrouping: true});
return f;
2021-12-27 01:37:46 +00:00
}
2022-01-05 14:07:33 +00:00
function digitalSelf(name, action) {
var self = inputVal(name);
var $action = $(action);
$action.val(f2Fixed(f2(self)));
}
2021-11-05 09:01:26 +00:00
2021-11-08 06:41:33 +00:00
/**
* 计算利润率
* @param r1
* @param r2
* @returns {*}
*/
function rate(r1,r2) {
if(!r1 || !r2 || r1==0 || r2==0){
return 0;
}
return f2(r1*100/r2);
}
2021-11-18 02:36:12 +00:00
/**
2022-01-05 14:07:33 +00:00
* 保留数字两位小数
2021-11-18 02:36:12 +00:00
*/
function bindNumberInput() {
2022-01-05 14:07:33 +00:00
//所有的数字类型输入框
var $numberTypeInputs = $("input[type='number']");
inputKeepDigital($numberTypeInputs);
//所有的number类的输入框
var $numberClassInputs = $("input.number");
inputKeepDigital($numberClassInputs);
}
2021-11-18 02:36:12 +00:00
2022-01-05 14:07:33 +00:00
function inputKeepDigital($inputs) {
2021-11-18 02:36:12 +00:00
//键盘键弹起的时候
$inputs.keyup(function () {
2021-11-30 05:27:26 +00:00
keepDigital($(this));
2021-11-18 02:36:12 +00:00
});
//失去焦点时再校验一遍
$inputs.blur(function() {
2021-11-30 05:27:26 +00:00
keepDigital($(this));
2021-11-18 02:36:12 +00:00
});
}
2021-11-30 05:27:26 +00:00
function keepDigital($input) {
2022-01-05 14:07:33 +00:00
$input.val(keepDigitalVal($input.val()));
}
/**
* 只保留数字
*/
function keepDigitalVal(value) {
2021-11-30 05:27:26 +00:00
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);
}
2022-01-05 14:07:33 +00:00
return value;
2021-11-30 05:27:26 +00:00
}
2021-11-23 11:31:10 +00:00
/**
* 保留整数
*/
function integerNumber(input) {
input.value=input.value.replace(/[^\d]/g,'').replace(/^0{1,}/g,'');
}
2021-11-18 02:36:12 +00:00
2021-11-08 06:41:33 +00:00
function postAjax(url, data, callback) {
2021-11-03 09:53:27 +00:00
$.ajax({
url: url,
data: JSON.stringify(data),
type: "post",
dataType: "json",
contentType:"application/json",
async: false,
success: function (d) {
console.log(d);
2021-11-18 11:25:06 +00:00
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);
}
2021-11-03 09:53:27 +00:00
}
});
}
2021-11-17 08:45:37 +00:00
2021-11-17 09:28:55 +00:00
/**
* 获取给定名字的input框的值
* @param name
* @returns {*|jQuery}
*/
function inputVal(name) {
return $("input[name='"+name+"']").val();
}
2021-11-17 08:45:37 +00:00
2021-11-17 09:28:55 +00:00
/**
* 获取给定class名字的input框的值
* @param className
* @returns {*|jQuery}
*/
function classVal(className) {
return $("."+className).val();
}
2021-11-17 08:45:37 +00:00
/**
* 统计成本(含税)有一项没填就置空
*/
function calCostInclude() {
2021-11-17 09:28:55 +00:00
var costPurchaseDeviceTaxInclude = inputVal("costPurchaseDeviceTaxInclude");
var costPurchaseBuildTaxInclude = inputVal("costPurchaseBuildTaxInclude");
var costPurchaseServiceTaxInclude = inputVal("costPurchaseServiceTaxInclude");
var costPurchaseOtherTaxInclude = inputVal("costPurchaseOtherTaxInclude");
var costProjectManageTaxInclude = inputVal("costProjectManageTaxInclude");
var costOtherOtherTaxInclude = inputVal("costOtherOtherTaxInclude");
2021-11-17 08:45:37 +00:00
2021-11-17 08:47:49 +00:00
var $costTotalTaxInclude = $("input[name='costTotalTaxInclude']");
2021-11-17 08:45:37 +00:00
2021-12-27 01:37:46 +00:00
$costTotalTaxInclude.val(f2Fixed(f2(costPurchaseDeviceTaxInclude) +f2(costPurchaseBuildTaxInclude)
2021-11-22 02:32:36 +00:00
+f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude)
2021-12-01 10:31:49 +00:00
+f2(costProjectManageTaxInclude)+f2(costOtherOtherTaxInclude)));
2021-11-17 08:45:37 +00:00
}
/**
* 统计成本(不含税)有一项没填就置空
*/
function calCostExclude() {
2021-11-17 09:28:55 +00:00
var costPurchaseDeviceTaxExclude = inputVal("costPurchaseDeviceTaxExclude");
var costPurchaseBuildTaxExclude = inputVal("costPurchaseBuildTaxExclude");
var costPurchaseServiceTaxExclude = inputVal("costPurchaseServiceTaxExclude");
var costPurchaseOtherTaxExclude = inputVal("costPurchaseOtherTaxExclude");
var costProjectManageTaxExclude = inputVal("costProjectManageTaxExclude");
var costOtherOtherTaxExclude = inputVal("costOtherOtherTaxExclude");
2021-11-17 08:45:37 +00:00
2021-11-17 08:47:49 +00:00
var $costTotalTaxExclude = $("input[name='costTotalTaxExclude']");
2021-11-17 08:45:37 +00:00
2021-12-27 01:37:46 +00:00
$costTotalTaxExclude.val(f2Fixed(f2(costPurchaseDeviceTaxExclude)+f2(costPurchaseBuildTaxExclude)
2021-11-22 02:32:36 +00:00
+f2(costPurchaseServiceTaxExclude)+f2(costPurchaseOtherTaxExclude)
2021-12-01 10:31:49 +00:00
+f2(costProjectManageTaxExclude)+f2(costOtherOtherTaxExclude)));
2021-11-17 08:45:37 +00:00
}