filter.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import Vue from 'vue'
  2. /**
  3. * 取小数位的精度 页面用法:{{'13232.1' | doubleNum}} 返回值:13232.10
  4. * @param {Object} value //需要匹配小数位的原始值
  5. * @param {Object} d //小数位的位数(可不传,不传默认保留两位小数)
  6. */
  7. Vue.filter("doubleNum", function(value,d) {
  8. if(value=='--'){
  9. return value;
  10. }
  11. d=d?d:'2';
  12. if(value){
  13. return parseFloat(value).toFixed(d);
  14. } else{
  15. // return '--'
  16. return (0).toFixed(d);
  17. }
  18. });
  19. /**
  20. * 千分位符 页面用法:{{'13232.1' | thousand}} 返回值:13,232.1
  21. * @param {Object} value //需要匹配的原始值
  22. * @param {Object} d //需要保留的小数位的位数(可不传,不传保留原始小数位)
  23. */
  24. Vue.filter("thousand", function(value,d) {
  25. if(value){
  26. if(d) value=parseFloat(value).toFixed(d);
  27. value=value.toString();
  28. var re=/\d{1,3}(?=(\d{3})+$)/g;
  29. var n1=value.replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){return s1.replace(re,"$&,")+s2;});
  30. return n1;
  31. }
  32. });
  33. /**
  34. * 日期格式重置 页面用法:{{'2017-08-22 18:30:26','yyyy-mm-dd hhmm' | formatDate}} 返回值:'2017-08-22 18:30'
  35. * @param {Object} value //需要匹配的原始值
  36. * @param {Object} value2 //需要得到的日期格式(页面不区分大小写,可不传,不传默认返回年月日)
  37. */
  38. Vue.filter("formatDate", function(value,value2) {
  39. if(value){
  40. if(value2) {
  41. if(value2.toLowerCase()=='yyyy-mm-dd hhmm'){
  42. let str=value.slice(11,19);
  43. if(str=='23:59:59'){
  44. return value.slice(0,10)+' 24:00';
  45. } else{
  46. return value.slice(0,16);
  47. }
  48. } else if(value2.toLowerCase()=='yyyy-mm-dd hh'){
  49. return value.slice(0,13);
  50. }else if(value2.toLowerCase()=='hhmm'){
  51. if(value.slice(11,19)=='23:59:59'){
  52. return '24:00';
  53. }
  54. return value.slice(11,16);
  55. } else{
  56. return value.slice(0,10);
  57. }
  58. }else{
  59. return value.slice(0,10);
  60. }
  61. }
  62. });
  63. /**
  64. * 时间格式重置 页面用法:{{'18:30:26' | formatTime}} 返回值:'18:30'
  65. * @param {Object} value //需要匹配的原始值
  66. */
  67. Vue.filter("formatTime", function(value) {
  68. if(value){
  69. if(value=='23:59:59'){
  70. return "24:00";
  71. } else{
  72. return value.slice(0,5);
  73. }
  74. }
  75. });
  76. /**
  77. * 格式重置 返回百分比
  78. * @param {Object} value //需要匹配的原始值
  79. */
  80. Vue.filter("percent", function(value) {
  81. if(value){
  82. return parseFloat(value).toFixed(2)+ '%';
  83. } else{
  84. return (0).toFixed(2) + '%';
  85. }
  86. });