hqchart
Version:
HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接
207 lines (179 loc) • 6.42 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
function StockStringFormat() {}
//字符串格式化 千分位分割
StockStringFormat.FormatValueThousandsString = function (value, floatPrecision) {
if (value == null || isNaN(value)) {
if (floatPrecision > 0) {
var nullText = '-.';
for (var i = 0; i < floatPrecision; ++i) {
nullText += '-';
}return nullText;
}
return '--';
}
var result = '';
var num = value.toFixed(floatPrecision);
if (floatPrecision > 0) {
var numFloat = num.split('.')[1];
var numM = num.split('.')[0];
var numMa = Number(numM);
var isLowZero = null;
if (numMa < 0) {
numMa = Math.abs(numMa);
isLowZero = true;
}
numMa = numMa.toString();
while (numMa.length > 3) {
result = ',' + numMa.slice(-3) + result;
numMa = numMa.slice(0, numMa.length - 3);
}
if (numMa) {
result = isLowZero != null ? '-' + numMa + result + '.' + numFloat : numMa + result + '.' + numFloat;
}
} else {
var numNF = Number(num);
var isLowZero = null;
if (numNF < 0) {
numNF = Math.abs(numNF);
isLowZero = true;
}
numNF = numNF.toString();
while (numNF.length > 3) {
result = ',' + numNF.slice(-3) + result;
numNF = numNF.slice(0, numNF.length - 3);
}
if (numNF) {
result = isLowZero != null ? '-' + numNF + result : numNF + result;
}
}
return result;
};
//数据输出格式化 floatPrecision=小数位数
StockStringFormat.FormatValueString = function (value, floatPrecision) {
if (value == null || isNaN(value)) {
if (floatPrecision > 0) {
var nullText = '-.';
for (var i = 0; i < floatPrecision; ++i) {
nullText += '-';
}return nullText;
}
return '--';
}
if (value < 0.00000000001 && value > -0.00000000001) {
return "0";
}
var absValue = Math.abs(value);
if (absValue < 10000) {
return value.toFixed(floatPrecision);
} else if (absValue < 100000000) {
return (value / 10000).toFixed(floatPrecision) + "万";
} else if (absValue < 1000000000000) {
return (value / 100000000).toFixed(floatPrecision) + "亿";
} else {
return (value / 1000000000000).toFixed(floatPrecision) + "万亿";
}
return TRUE;
};
StockStringFormat.NumberToString = function (value) {
if (value < 10) return '0' + value.toString();
return value.toString();
};
StockStringFormat.FormatDateString = function (value, format) {
var year = parseInt(value / 10000);
var month = parseInt(value / 100) % 100;
var day = value % 100;
switch (format) {
case 'MM-DD':
return StockStringFormat.NumberToString(month) + '-' + StockStringFormat.NumberToString(day);
default:
return year.toString() + '-' + StockStringFormat.NumberToString(month) + '-' + StockStringFormat.NumberToString(day);
}
};
StockStringFormat.FormatTimeString = function (value) {
if (value < 10000) {
var hour = parseInt(value / 100);
var minute = value % 100;
return StockStringFormat.NumberToString(hour) + ':' + StockStringFormat.NumberToString(minute);
} else {
var hour = parseInt(value / 10000);
var minute = parseInt(value % 10000 / 100);
var second = value % 100;
return StockStringFormat.NumberToString(hour) + ':' + StockStringFormat.NumberToString(minute) + ':' + StockStringFormat.NumberToString(second);
}
};
//报告格式化
StockStringFormat.FormatReportDateString = function (value) {
var year = parseInt(value / 10000);
var month = parseInt(value / 100) % 100;
var monthText;
switch (month) {
case 3:
monthText = "一季度报";
break;
case 6:
monthText = "半年报";
break;
case 9:
monthText = "三季度报";
break;
case 12:
monthText = "年报";
break;
}
return year.toString() + monthText;
};
StockStringFormat.FormatDateTimeString = function (value, isShowDate) {
var aryValue = value.split(' ');
if (aryValue.length < 2) return "";
var time = parseInt(aryValue[1]);
var minute = time % 100;
var hour = parseInt(time / 100);
var text = (hour < 10 ? '0' + hour.toString() : hour.toString()) + ':' + (minute < 10 ? '0' + minute.toString() : minute.toString());
if (isShowDate == true) {
var date = parseInt(aryValue[0]);
var year = parseInt(date / 10000);
var month = parseInt(date % 10000 / 100);
var day = date % 100;
text = year.toString() + '-' + (month < 10 ? '0' + month.toString() : month.toString()) + '-' + (day < 10 ? '0' + day.toString() : day.toString()) + " " + text;
}
return text;
};
//字段颜色格式化
StockStringFormat.FormatValueColor = function (value, value2) {
if (value != null && value2 == null) //只传一个值的 就判断value正负
{
if (value == 0) return 'PriceNull';else if (value > 0) return 'PriceUp';else return 'PriceDown';
}
//2个数值对比 返回颜色
if (value == null || value2 == null) return 'PriceNull';
if (value == value2) return 'PriceNull';else if (value > value2) return 'PriceUp';else return 'PriceDown';
};
StockStringFormat.IsNumber = function (value) {
if (value == null) return false;
if (isNaN(value)) return false;
return true;
};
//判断是否是正数
StockStringFormat.IsPlusNumber = function (value) {
if (value == null) return false;
if (isNaN(value)) return false;
return value > 0;
};
//判断字段是否存在
StockStringFormat.IsObjectExist = function (obj) {
if (obj === undefined) return false;
if (obj == null) return false;
return true;
};
StockStringFormat.Guid = function () {
function S4() {
return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);
}
return S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4();
};
exports.default = {
StockStringFormat: StockStringFormat
};