| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- "use strict";
- angular.module('app.business').service("commonUtilService", function($http, $q, $rootScope, APP_CONFIG) {
- /*---------------js 两个数加 ------------------------------*/
- this.accAdd = function(arg1, arg2) {
- if (arg1 == '' || arg1 == null || arg1 == undefined) {
- arg1 = 0;
- }
- if (arg2 == '' || arg2 == null || arg2 == undefined) {
- arg2 = 0;
- }
- var r1 = 0, r2 = 0, m;
- try {r1 = arg1.toString().split(".")[1].length;} catch(e) {}
- try {r2 = arg2.toString().split(".")[1].length;} catch(e) {}
- // 相加,小数位数为两个数中小数最长的.
- m=Math.pow(10,Math.max(r1,r2));
- return (arg1*m+arg2*m)/m;
- }
- /*---------------js 两个数减 ------------------------------*/
- this.accSub = function(arg1, arg2) {
- if (arg1 == '' || arg1 == null || arg1 == undefined) {
- arg1 = 0;
- }
- if (arg2 == '' || arg2 == null || arg2 == undefined) {
- arg2 = 0;
- }
- var r1 = 0, r2 = 0, m, n;
- try {r1=arg1.toString().split(".")[1].length; } catch(e) {}
- try {r2=arg2.toString().split(".")[1].length; } catch(e) {}
- // 相加,小数位数为两个数中小数最长的.
- m=Math.pow(10,Math.max(r1,r2));
- n=(r1>=r2)?r1:r2;
- return ((arg1*m-arg2*m)/m).toFixed(n);
- }
- /*---------------js 两个数相乘 ------------------------------*/
- this.accMul = function(num1, num2) {
- if (num1 == '' || num1 == null || num1 == undefined) {
- num1 = 0;
- }
- if (num2 == '' || num2 == null || num2 == undefined) {
- num2 = 0;
- }
- var m = 0;
- var n = 0;
- var s1 = num1.toString();
- var s2 = num2.toString();
- // 相乘,小数位数为两个数小数之和.
- try { m = s1.split(".")[1].length; } catch (e) {};
- try { n = s2.split(".")[1].length; } catch (e) {};
- return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m+n);
- }
- /*---------------js 两个数除 ------------------------------*/
- this.accDiv = function(arg1, arg2) {
- if (arg1 == '' || arg1 == null || arg1 == undefined) {
- arg1 = 0;
- }
- if (arg2 == '' || arg2 == null || arg2 == undefined) {
- arg2 = 0;
- }
- 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) {}
- r1=Number(arg1.toString().replace(".",""));
- r2=Number(arg2.toString().replace(".",""));
- // 相除,小数位数为两个数小数之差.
- return this.accMul((r1/r2), Math.pow(10,t2-t1));
- }
- /*---------------js 数字转大写金额 单位(元 角分)-----------------------*/
- this.JEDX = function(num) {
- if (isNaN(num)) {
- return "无效数值!";
- }
- var strPrefix="";
- if(num < 0) {
- strPrefix ="(负)";
- }
- num = Math.abs(num);
- if (num >= 1000000000000) {
- return "无效数值!";
- }
- var strOutput = "";
- var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
- num += "00";
- var intPos = num.indexOf('.');
- if (intPos >= 0) {
- num = num.substring(0, intPos) + num.substr(intPos + 1, 2);
- }
- strUnit = strUnit.substr(strUnit.length - num.length);
- for (var i=0; i < num.length; i++) {
- strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i,1),1) + strUnit.substr(i,1);
- }
- return strPrefix + strOutput.replace(/零角零分$/, '整').replace(/零分$/, '').replace(/零[仟佰拾]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿|万])/g, '$1').replace(/零+元/, '元').replace(/亿零{0,3}万/, '亿').replace(/^元/, "零元");
- };
-
- //加
- this.accAdds = function(arg1, arg2,arg3, arg4,arg5, arg6) {
- if (arg1 == '' || arg1 == null || arg1 == undefined) {
- arg1 = 0;
- }
- if (arg2 == '' || arg2 == null || arg2 == undefined) {
- arg2 = 0;
- }
- if (arg3 == '' || arg3 == null || arg3 == undefined) {
- arg3 = 0;
- }
- if (arg4 == '' || arg4 == null || arg4 == undefined) {
- arg4 = 0;
- }
- if (arg5 == '' || arg5 == null || arg5 == undefined) {
- arg5 = 0;
- }
- if (arg6 == '' || arg6 == null || arg6 == undefined) {
- arg6 = 0;
- }
- var r1 = 0, r2 = 0,r3 = 0,r4 = 0,r5 = 0,r6 = 0, m;
- try {r1 = arg1.toString().split(".")[1].length;} catch(e) {}
- try {r2 = arg2.toString().split(".")[1].length;} catch(e) {}
- try {r3 = arg3.toString().split(".")[1].length;} catch(e) {}
- try {r4 = arg4.toString().split(".")[1].length;} catch(e) {}
- try {r5 = arg5.toString().split(".")[1].length;} catch(e) {}
- try {r6 = arg6.toString().split(".")[1].length;} catch(e) {}
- // 相加,小数位数为两个数中小数最长的.
- m=Math.pow(10,Math.max(r1,r2,r3,r4,r5,r6));
- return (arg1*m+arg2*m+arg3*m+arg4*m+arg5*m+arg6*m)/m;
- }
- //四舍五入保留一位小数
- this.getMath1 = function(v) {
- if (isNaN(v) || v == "") {
- v = "0.0";
- } else {
- v = Math.round(v*10)/10;
- v = v.toString();
- var rs = v.indexOf('.');
- if(rs < 0){
- v = v + ".0";
- }else{
- while(v.length <= rs + 1){v += '0';}
- }
- }
- return v;
- }
- //四舍五入保留两位小数
- this.getMath = function(v) {
- if (isNaN(v) || v == "") {
- v = "0.00";
- } else {
- v = Math.round(v*100)/100;
- v = v.toString();
- var rs = v.indexOf('.');
- if(rs < 0){
- v = v + ".00";
- }else{
- while(v.length <= rs + 2){v += '0';}
- }
- }
- return v;
- }
-
- //将v四舍五入,且保留n位小数(这个方法有异常,不准)
- this.getMath_N = function(v, n) {
- if (isNaN(v) || v == "") {
- if (isNaN(n) || v == "") {
- v = "0.00";
- } else if (n == 0) {
- v = "0";
- } else {
- v = "";
- for (var i = 1; i <= n; i++) {
- if (i == 1) {
- v = "0.0";
- } else {
- v = v+"0";
- }
- }
- }
- } else {
- v = Math.round(v*100)/100;
- v = v.toString();
- var rs = v.indexOf('.');
- if (rs < 0) {
- if (n > 0) {
- for (var i = 1; i <= n; i++) {
- if (i == 1) {
- v = v+".0";
- } else {
- v = v+"0";
- }
- }
- }
- }else{
- while(v.length <= rs + n){v += '0';}
- }
- }
- return v;
- }
- /**
- * 判断奇进偶舍(目前最多保留两位小数)
- * v:原数据值
- * n:要保留的小数位数
- */
- this.checkJqos = function(v, n) {
- if (!isNaN(v) && v != "") {
- var pos = v.toString().indexOf(".");
- if (pos == -1) {
- var f = n;
- v = v + ".";
- for (var i = 0; i < n+1; i++) {
- v=v+"0";
- }
- } else {
- var len = v.toString().substr(pos + 1, v.toString().length).length;
- if (len<(n+1)) {
- var d = n+1;
- var s = d-len;//计算少了少几位小数
- //把少的位置补上
- for (var i = 0; i < s; i++) {
- v=v+"0";
- }
- }
- var intv, secondNum, firstNum;
- if (n==1) {
- intv = v.toString().substr(0, pos);
- secondNum = parseInt(v.toString().substr(pos + 2, 1)); //第二位小数
- firstNum = parseInt(v.toString().substr(pos + 1, 1)); //第一位小数
- if (secondNum == 5) {
- if (firstNum % 2 == 0) {
- v = intv.toString()+'.'+firstNum.toString()+'4';
- } else {
- v = intv.toString()+'.'+firstNum.toString()+'6';
- }
- } else {
- v = intv.toString()+'.'+firstNum.toString()+secondNum.toString();
- }
- } else if (n==2) {
- intv = v.toString().substr(0, pos+2);
- firstNum = parseInt(v.toString().substr(pos + 2, 1)); //第二位小数
- secondNum = parseInt(v.toString().substr(pos + 3, 1)); //第三位小数
- if (secondNum == 5) {
- if (firstNum % 2 == 0) {
- v = intv.toString()+firstNum.toString()+'4';
- } else {
- v = intv.toString()+firstNum.toString()+'6';
- }
- } else {
- v = intv.toString()+firstNum.toString()+secondNum.toString();
- }
- }
- }
- if (n==2) {
- v = this.getMath(v);
- }
- if (n==1) {
- v = this.getMath1(v);
- }
- } else {
- v = 0.0
- }
- return v;
- }
- /**
- * 获取仓房或油罐的保管员
- */
- this.getKeeperNames = function(houseId) {
- var keeperNames;
- var datatype = $rootScope.storehouseObj[houseId].datatype;
- if (datatype == "0") {
- keeperNames = $rootScope.storehouseObj[houseId].dutystoreman;
- } else if (datatype == "1") {
- keeperNames = $rootScope.tankObj[houseId].keeperNames;
- } else {
- keeperNames = null;
- console.log("无法区分数据是油罐还是仓房");
- }
- return keeperNames
- }
- /**
- * 树形下拉框处理
- */
- this.getTreeList = function(data) {
- var e = [];
- if (data.length != 0) {
- //要插入的json对象串
- var a = {"id":null,"name":"请选择","children":[]};
- //将返回的json对象和要插入的json对象串转换为字符串格式
- var f = angular.toJson(a);
- var b = angular.toJson(data);
- //把要插入的json对象串插入返回数据的最前面
- var c = b.substring(0,1);
- var d = b.substring(1,b.length);
- e = c + f + "," + d;
- }
- //最后在转换为json对象返回去
- return angular.fromJson(e);
- }
- })
|