引入第三方浮点数运算库

This commit is contained in:
邓皓元 2019-04-19 16:02:14 +08:00
parent d1d3892288
commit 774722e80f
5 changed files with 129 additions and 24 deletions

View File

@ -12,6 +12,7 @@
"@riophae/vue-treeselect": "0.0.36",
"axios": "^0.18.0",
"blueimp-md5": "^2.10.0",
"decimal.js": "^10.1.1",
"file-saver": "^1.3.8",
"iview": "^3.0.1",
"iview-area": "^1.6.0",

View File

@ -1,10 +1,12 @@
import { Decimal } from "decimal.js";
/**
* [pageTitle 页面标题]
* @param {[type]} title [标题]
* @return {[type]} [返回新标题]
*/
export function pageTitle(title) {
title = title ? title + '- 基础后台管理系统' : '基础后台管理系统';
title = title ? title + "- 基础后台管理系统" : "基础后台管理系统";
window.document.title = title;
}
@ -12,7 +14,7 @@ export function pageTitle(title) {
* [pageRedirect 页面重定向]
* @return {[type]} [返回对应的路由]
*/
export function pageRedirect(page = '/') {
export function pageRedirect(page = "/") {
const redirect = vm.$route.query.redirect;
if (redirect) {
vm.$router.push(decodeURIComponent(redirect));
@ -48,21 +50,21 @@ export function getByteLength(char) {
*/
export function exportTable(tableData, fileName) {
// [['标题1','标题2'],['数据1','数据2']]
if (Object.prototype.toString.call(tableData) == '[object Array]') {
let csvContent = 'data:text/csv;charset=utf-8,';
if (Object.prototype.toString.call(tableData) == "[object Array]") {
let csvContent = "data:text/csv;charset=utf-8,";
tableData.forEach((arry, index) => {
let row = arry.join(',');
csvContent += row + '\r\n';
let row = arry.join(",");
csvContent += row + "\r\n";
});
let encodedUri = encodeURI(csvContent);
let link = document.createElement('a');
link.setAttribute('href', encodedUri);
link.setAttribute('download', fileName + '.csv');
let link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", fileName + ".csv");
document.body.appendChild(link); // Required for FF
link.click();
document.body.removeChild(link);
} else {
console.log('表格数据类型错误');
console.log("表格数据类型错误");
}
}
@ -92,10 +94,10 @@ export function getObjectURL(file) {
* @return {[type]} [description]
*/
export function downloadFile(url, filename) {
let a = document.createElement('a');
let a = document.createElement("a");
let xhr = new XMLHttpRequest();
xhr.open('get', url, true);
xhr.responseType = 'blob';
xhr.open("get", url, true);
xhr.responseType = "blob";
xhr.onload = function() {
if (this.status == 200) {
let blob = this.response;
@ -121,12 +123,12 @@ export function downloadFile(url, filename) {
* @param {[type]} object [对象]
* @return {[type]} [一维对象]
*/
export function objectDot(object, prepend = '') {
export function objectDot(object, prepend = "") {
let results = {};
for (let k in object) {
if ((typeof object[k] == 'object') && Object.keys(object[k]).length) {
results = Object.assign(results, objectDot(object[k], prepend + k + '.'));
if (typeof object[k] == "object" && Object.keys(object[k]).length) {
results = Object.assign(results, objectDot(object[k], prepend + k + "."));
} else {
if (object[k] || object[k] === 0) {
results[prepend + k] = object[k];
@ -146,7 +148,7 @@ export function sumBy(array, key) {
return array.reduce((acc, cur) => {
return add(acc, Number(cur[key]));
}, 0);
};
}
/**
* 精确加法
@ -154,9 +156,7 @@ export function sumBy(array, key) {
* @param {Number} num2
*/
export function add(num1, num2) {
var r1, r2, m;
try { r1 = num1.toString().split(".")[1].length; } catch (e) { r1 = 0; }
try { r2 = num2.toString().split(".")[1].length; } catch (e) { r2 = 0; }
m = Math.pow(10, Math.max(r1, r2));
return (num1 * m + num2 * m) / m;
};
num1 = new Decimal(num1);
num2 = new Decimal(num2);
return num1.add(num2).toFixed(2);
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=\favicon.ico><script src=\config.js></script><title></title><link href=/css/chunk-6ea47298.6166dab5.css rel=prefetch><link href=/css/chunk-8064e07e.03f6c57e.css rel=prefetch><link href=/js/chunk-00ae0766.d130b440.js rel=prefetch><link href=/js/chunk-07a274ec.55e1b3b0.js rel=prefetch><link href=/js/chunk-6ea47298.b6a301d0.js rel=prefetch><link href=/js/chunk-8064e07e.17492b65.js rel=prefetch><link href=/css/app.be09e36f.css rel=preload as=style><link href=/css/chunk-vendors.3c3b2e85.css rel=preload as=style><link href=/js/app.b6836461.js rel=preload as=script><link href=/js/chunk-vendors.ed6443e8.js rel=preload as=script><link href=/css/chunk-vendors.3c3b2e85.css rel=stylesheet><link href=/css/app.be09e36f.css rel=stylesheet></head><body><noscript><strong>很抱歉如果没有启用JavaScript程序不能正常工作若要继续使用请启用它。</strong></noscript><div id=app></div><script src=/js/chunk-vendors.ed6443e8.js></script><script src=/js/app.b6836461.js></script></body></html>
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=\favicon.ico><script src=\config.js></script><title></title><link href=/css/chunk-6ea47298.6166dab5.css rel=prefetch><link href=/css/chunk-8064e07e.03f6c57e.css rel=prefetch><link href=/js/chunk-00ae0766.d130b440.js rel=prefetch><link href=/js/chunk-07a274ec.55e1b3b0.js rel=prefetch><link href=/js/chunk-6ea47298.b6a301d0.js rel=prefetch><link href=/js/chunk-8064e07e.17492b65.js rel=prefetch><link href=/css/app.be09e36f.css rel=preload as=style><link href=/css/chunk-vendors.3c3b2e85.css rel=preload as=style><link href=/js/app.7240614e.js rel=preload as=script><link href=/js/chunk-vendors.f1169dcc.js rel=preload as=script><link href=/css/chunk-vendors.3c3b2e85.css rel=stylesheet><link href=/css/app.be09e36f.css rel=stylesheet></head><body><noscript><strong>很抱歉如果没有启用JavaScript程序不能正常工作若要继续使用请启用它。</strong></noscript><div id=app></div><script src=/js/chunk-vendors.f1169dcc.js></script><script src=/js/app.7240614e.js></script></body></html>